forked from mhewedy/ews
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathfind_item_test.go
125 lines (114 loc) · 3.44 KB
/
find_item_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package ews
import (
"encoding/xml"
"github.com/stretchr/testify/assert"
"log"
"testing"
)
func Test_marshal_FindItemContains(t *testing.T) {
req := &FindItemRequest{
Traversal: "Shallow",
ItemShape: ItemShape{BaseShape: BaseShapeIdOnly, AdditionalProperties: AdditionalProperties{
FieldURI: []FieldURI{
{FieldURI: "item:Subject"},
},
}},
IndexedPageItemView: IndexedPageItemView{
MaxEntriesReturned: 5,
Offset: 0,
BasePoint: BasePointBeginning,
},
Restriction: Restriction{},
ParentFolderIds: ParentFolderIds{DistinguishedFolderId: DistinguishedFolderId{Id: "inbox"}},
}
req.Restriction.IsEqualTo = nil
req.Restriction.Contains = &Contains{BaseFiltering: BaseFiltering{
AdditionalProperties: AdditionalProperties{
FieldURI: []FieldURI{
{FieldURI: "item:Subject"},
},
},
},
Constant: []Constant{
{Value: "Test Subject"},
},
ContainmentMode: "Substring",
ContainmentComparison: "IgnoreCase",
}
xmlBytes, err := xml.MarshalIndent(req, "", " ")
if err != nil {
log.Fatal(err)
}
assert.Equal(t, `<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:Subject"></t:FieldURI>
</t:AdditionalProperties>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="5" Offset="0" BasePoint="Beginning"></m:IndexedPageItemView>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="inbox"></t:DistinguishedFolderId>
</m:ParentFolderIds>
<m:Restriction>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject"></t:FieldURI>
<t:Constant Value="Test Subject"></t:Constant>
</t:Contains>
</m:Restriction>
</m:FindItem>`, string(xmlBytes))
}
func Test_marshal_FindItemIsEqualTo(t *testing.T) {
req := &FindItemRequest{
Traversal: "Shallow",
ItemShape: ItemShape{BaseShape: BaseShapeIdOnly, AdditionalProperties: AdditionalProperties{
FieldURI: []FieldURI{
{FieldURI: "item:Subject"},
},
}},
IndexedPageItemView: IndexedPageItemView{
MaxEntriesReturned: 5,
Offset: 0,
BasePoint: BasePointBeginning,
},
Restriction: Restriction{},
ParentFolderIds: ParentFolderIds{DistinguishedFolderId: DistinguishedFolderId{Id: "inbox"}},
}
req.Restriction.IsEqualTo = &IsEqualTo{BaseFiltering: BaseFiltering{
AdditionalProperties: AdditionalProperties{
FieldURI: []FieldURI{
{FieldURI: "item:Subject"},
},
},
},
FieldURIOrConstant: FieldURIOrConstant{
Constant: []Constant{
{Value: "Test Subject"},
},
}}
req.Restriction.Contains = nil
xmlBytes, err := xml.MarshalIndent(req, "", " ")
if err != nil {
log.Fatal(err)
}
assert.Equal(t, `<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:Subject"></t:FieldURI>
</t:AdditionalProperties>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="5" Offset="0" BasePoint="Beginning"></m:IndexedPageItemView>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="inbox"></t:DistinguishedFolderId>
</m:ParentFolderIds>
<m:Restriction>
<t:IsEqualTo>
<t:FieldURI FieldURI="item:Subject"></t:FieldURI>
<t:FieldURIOrConstant>
<t:Constant Value="Test Subject"></t:Constant>
</t:FieldURIOrConstant>
</t:IsEqualTo>
</m:Restriction>
</m:FindItem>`, string(xmlBytes))
}