29 |
29 |
public void Setup()
|
30 |
30 |
{
|
31 |
31 |
_previous = new []{
|
32 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
33 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
34 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
35 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4"},
|
36 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
37 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
38 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
39 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8"},
|
40 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
41 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
42 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11"},
|
43 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
44 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
32 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
33 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
34 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
35 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4"},
|
|
36 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
37 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
38 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
39 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8"},
|
|
40 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
41 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
42 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11"},
|
|
43 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
44 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
45 |
45 |
};
|
46 |
46 |
_current = new []{
|
47 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
48 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
49 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=1234,Hash="aa45",Version=1,UUID="4"},
|
50 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name5",Bytes=123,Hash="aa5",Version=1,UUID="14"},
|
51 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
52 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
53 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
54 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
55 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
56 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=1234,Hash="aa45",Version=1,UUID="11"},
|
57 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name5",Bytes=123,Hash="aa5",Version=1,UUID="15"},
|
58 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
59 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
47 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
48 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
49 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=1234,X_Object_Hash="aa45",Version=1,UUID="4"},
|
|
50 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name5",Bytes=123,X_Object_Hash="aa5",Version=1,UUID="14"},
|
|
51 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
52 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
53 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
54 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
55 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
56 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=1234,X_Object_Hash="aa45",Version=1,UUID="11"},
|
|
57 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name5",Bytes=123,X_Object_Hash="aa5",Version=1,UUID="15"},
|
|
58 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
59 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
60 |
60 |
};
|
61 |
61 |
|
62 |
62 |
}
|
... | ... | |
80 |
80 |
var differencer=d1.Post(_previous).Post(_current);
|
81 |
81 |
var deleted=new[]
|
82 |
82 |
{
|
83 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
84 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8"},
|
|
83 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
84 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8"},
|
85 |
85 |
};
|
86 |
86 |
Assert.That(differencer.Deleted.ToList(),Is.EquivalentTo(deleted)
|
87 |
87 |
.Using((IEqualityComparer) new ObjectInfoComparer()));
|
... | ... | |
93 |
93 |
var differencer=d1.Post(_previous).Post(_current);
|
94 |
94 |
var created = new[]
|
95 |
95 |
{
|
96 |
|
new ObjectInfo { Account = "acc1", Container = "Cont1", Name = "Name5", Bytes = 123, Hash = "aa5", Version = 1,UUID="14" },
|
97 |
|
new ObjectInfo { Account = "acc1", Container = "Cont2", Name = "Name5", Bytes = 123, Hash = "aa5", Version = 1,UUID="15" },
|
|
96 |
new ObjectInfo { Account = "acc1", Container = "Cont1", Name = "Name5", Bytes = 123, X_Object_Hash = "aa5", Version = 1,UUID="14" },
|
|
97 |
new ObjectInfo { Account = "acc1", Container = "Cont2", Name = "Name5", Bytes = 123, X_Object_Hash = "aa5", Version = 1,UUID="15" },
|
98 |
98 |
};
|
99 |
99 |
Assert.That(differencer.Created.ToList(), Is.EquivalentTo(created)
|
100 |
100 |
.Using((IEqualityComparer)new ObjectInfoComparer()));
|
... | ... | |
105 |
105 |
var d1 = new SnapshotDifferencer();
|
106 |
106 |
var differencer=d1.Post(_previous).Post(_current);
|
107 |
107 |
var changed = new[] {
|
108 |
|
new ObjectInfo { Account = "acc1", Container = "Cont1", Name = "Name4", Bytes = 1234, Hash = "aa45", PreviousHash="aa4", Version = 1,UUID="4" },
|
109 |
|
new ObjectInfo { Account = "acc1", Container = "Cont2", Name = "Name4", Bytes = 1234, Hash = "aa45", PreviousHash="aa4", Version = 1,UUID="11" },
|
|
108 |
new ObjectInfo { Account = "acc1", Container = "Cont1", Name = "Name4", Bytes = 1234, X_Object_Hash = "aa45", PreviousHash="aa4", Version = 1,UUID="4" },
|
|
109 |
new ObjectInfo { Account = "acc1", Container = "Cont2", Name = "Name4", Bytes = 1234, X_Object_Hash = "aa45", PreviousHash="aa4", Version = 1,UUID="11" },
|
110 |
110 |
};
|
111 |
111 |
|
112 |
112 |
Comparison<ObjectInfo> comparer = (x, y) =>
|
... | ... | |
114 |
114 |
if (x.Account == y.Account
|
115 |
115 |
&& x.Container == y.Container
|
116 |
116 |
&& x.Name == y.Name
|
117 |
|
&& x.Hash == y.Hash
|
|
117 |
&& x.X_Object_Hash == y.X_Object_Hash
|
118 |
118 |
&& x.PreviousHash == y.PreviousHash)
|
119 |
119 |
return 0;
|
120 |
120 |
return 1;
|
... | ... | |
128 |
128 |
{
|
129 |
129 |
var d1 = new SnapshotDifferencer();
|
130 |
130 |
var current = new[]{
|
131 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
132 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
133 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
134 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4"},
|
135 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
136 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
137 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
138 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8"},
|
139 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
140 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
141 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11"},
|
142 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
143 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
131 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
132 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
133 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
134 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4"},
|
|
135 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
136 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
137 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
138 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8"},
|
|
139 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
140 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
141 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11"},
|
|
142 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
143 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
144 |
144 |
};
|
145 |
145 |
|
146 |
146 |
var differencer=d1.Post(_previous).Post(current);
|
147 |
147 |
var moved = new[] {
|
148 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,Hash="aa3",PreviousHash="aa3",Version=1,UUID="3"}
|
|
148 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,X_Object_Hash="aa3",PreviousHash="aa3",Version=1,UUID="3"}
|
149 |
149 |
};
|
150 |
150 |
|
151 |
151 |
Comparison<ObjectInfo> comparer = (x, y) =>
|
... | ... | |
153 |
153 |
if (x.Account == y.Account
|
154 |
154 |
&& x.Container == y.Container
|
155 |
155 |
&& x.Name == y.Name
|
156 |
|
&& x.Hash == y.Hash
|
|
156 |
&& x.X_Object_Hash == y.X_Object_Hash
|
157 |
157 |
&& x.PreviousHash == y.PreviousHash)
|
158 |
158 |
return 0;
|
159 |
159 |
return 1;
|
... | ... | |
171 |
171 |
{
|
172 |
172 |
var d1 = new SnapshotDifferencer();
|
173 |
173 |
var current = new[]{
|
174 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
175 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
176 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,Hash="aa35",Version=1,UUID="3"},
|
177 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4"},
|
178 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
179 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
180 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
181 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8"},
|
182 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
183 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
184 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11"},
|
185 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
186 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
174 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
175 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
176 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,X_Object_Hash="aa35",Version=1,UUID="3"},
|
|
177 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4"},
|
|
178 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
179 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
180 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
181 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8"},
|
|
182 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
183 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
184 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11"},
|
|
185 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
186 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
187 |
187 |
};
|
188 |
188 |
var unchanged = new[]{
|
189 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1",PreviousHash="aa1"},
|
190 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2",PreviousHash="aa2"},
|
191 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4",PreviousHash="aa4"},
|
192 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5",PreviousHash="aa4"},
|
193 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6",PreviousHash="aa1"},
|
194 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7",PreviousHash="aa2"},
|
195 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8",PreviousHash="aa1"},
|
196 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9",PreviousHash="aa2"},
|
197 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10",PreviousHash="aa3"},
|
198 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11",PreviousHash="aa4"},
|
199 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12",PreviousHash="aa1"},
|
200 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13",PreviousHash="aa2"},
|
|
189 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1",PreviousHash="aa1"},
|
|
190 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2",PreviousHash="aa2"},
|
|
191 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4",PreviousHash="aa4"},
|
|
192 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5",PreviousHash="aa4"},
|
|
193 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6",PreviousHash="aa1"},
|
|
194 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7",PreviousHash="aa2"},
|
|
195 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8",PreviousHash="aa1"},
|
|
196 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9",PreviousHash="aa2"},
|
|
197 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10",PreviousHash="aa3"},
|
|
198 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11",PreviousHash="aa4"},
|
|
199 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12",PreviousHash="aa1"},
|
|
200 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13",PreviousHash="aa2"},
|
201 |
201 |
};
|
202 |
202 |
|
203 |
203 |
var differencer = d1.Post(_previous).Post(current);
|
204 |
204 |
var moved = new[] {
|
205 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,Hash="aa35",PreviousHash="aa3",Version=1,UUID="3"}
|
|
205 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3a",Bytes=123,X_Object_Hash="aa35",PreviousHash="aa3",Version=1,UUID="3"}
|
206 |
206 |
};
|
207 |
207 |
|
208 |
208 |
Comparison<ObjectInfo> comparer = (x, y) =>
|
... | ... | |
210 |
210 |
if (x.Account == y.Account
|
211 |
211 |
&& x.Container == y.Container
|
212 |
212 |
&& x.Name == y.Name
|
213 |
|
&& x.Hash == y.Hash
|
|
213 |
&& x.X_Object_Hash == y.X_Object_Hash
|
214 |
214 |
&& x.PreviousHash == y.PreviousHash)
|
215 |
215 |
return 0;
|
216 |
216 |
return 1;
|
... | ... | |
227 |
227 |
{
|
228 |
228 |
var d1 = new SnapshotDifferencer();
|
229 |
229 |
var current = new[]{
|
230 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
231 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
232 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name3",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
233 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4"},
|
234 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
235 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
236 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
237 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8"},
|
238 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
239 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
240 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11"},
|
241 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
242 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
230 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
231 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
232 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
233 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4"},
|
|
234 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
235 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
236 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
237 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8"},
|
|
238 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
239 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
240 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11"},
|
|
241 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
242 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
243 |
243 |
};
|
244 |
244 |
|
245 |
245 |
var differencer=d1.Post(_previous).Post(current);
|
246 |
246 |
var moved = new[] {
|
247 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name3",Bytes=123,Hash="aa3",PreviousHash="aa3",Version=1},
|
|
247 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name3",Bytes=123,X_Object_Hash="aa3",PreviousHash="aa3",Version=1},
|
248 |
248 |
};
|
249 |
249 |
|
250 |
250 |
Comparison<ObjectInfo> comparer = (x, y) =>
|
... | ... | |
252 |
252 |
if (x.Account == y.Account
|
253 |
253 |
&& x.Container == y.Container
|
254 |
254 |
&& x.Name == y.Name
|
255 |
|
&& x.Hash == y.Hash
|
|
255 |
&& x.X_Object_Hash == y.X_Object_Hash
|
256 |
256 |
&& x.PreviousHash == y.PreviousHash)
|
257 |
257 |
return 0;
|
258 |
258 |
return 1;
|
... | ... | |
272 |
272 |
var differencer=d1.Post(_previous).Post(_current);
|
273 |
273 |
var unchanged = new[]
|
274 |
274 |
{
|
275 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
276 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
277 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6"},
|
278 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7"},
|
279 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5"},
|
280 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9"},
|
281 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10"},
|
282 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12"},
|
283 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13"},
|
|
275 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
276 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
277 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6"},
|
|
278 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7"},
|
|
279 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5"},
|
|
280 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9"},
|
|
281 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10"},
|
|
282 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12"},
|
|
283 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13"},
|
284 |
284 |
};
|
285 |
285 |
Assert.That(differencer.Unchanged.ToList(), Is.EquivalentTo(unchanged)
|
286 |
286 |
.Using((IEqualityComparer)new ObjectInfoComparer()));
|
... | ... | |
346 |
346 |
};
|
347 |
347 |
var deleted = new[]
|
348 |
348 |
{
|
349 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="1"},
|
350 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="2"},
|
351 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="3"},
|
352 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="4"},
|
|
349 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="1"},
|
|
350 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="2"},
|
|
351 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="3"},
|
|
352 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="4"},
|
353 |
353 |
};
|
354 |
354 |
var unchanged = new[]{
|
355 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,Hash="aa4",Version=1,UUID="5",PreviousHash="aa4"},
|
356 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="6",PreviousHash="aa1"},
|
357 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="7",PreviousHash="aa2"},
|
358 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="8",PreviousHash="aa1"},
|
359 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="9",PreviousHash="aa2"},
|
360 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,Hash="aa3",Version=1,UUID="10",PreviousHash="aa3"},
|
361 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,Hash="aa4",Version=1,UUID="11",PreviousHash="aa4"},
|
362 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,Hash="aa1",Version=1,UUID="12",PreviousHash="aa1"},
|
363 |
|
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,Hash="aa2",Version=1,UUID="13",PreviousHash="aa2"},
|
|
355 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont1",Name="Folder1/Name1",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="5",PreviousHash="aa4"},
|
|
356 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="6",PreviousHash="aa1"},
|
|
357 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont1",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="7",PreviousHash="aa2"},
|
|
358 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="8",PreviousHash="aa1"},
|
|
359 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="9",PreviousHash="aa2"},
|
|
360 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name3",Bytes=123,X_Object_Hash="aa3",Version=1,UUID="10",PreviousHash="aa3"},
|
|
361 |
new ObjectInfo{StorageUri=_testUri,Account="acc1",Container="Cont2",Name="Name4",Bytes=123,X_Object_Hash="aa4",Version=1,UUID="11",PreviousHash="aa4"},
|
|
362 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name1",Bytes=123,X_Object_Hash="aa1",Version=1,UUID="12",PreviousHash="aa1"},
|
|
363 |
new ObjectInfo{StorageUri=_testUri,Account="acc2",Container="Cont2",Name="Name2",Bytes=123,X_Object_Hash="aa2",Version=1,UUID="13",PreviousHash="aa2"},
|
364 |
364 |
};
|
365 |
365 |
var differencer = d1.Post(_previous)
|
366 |
366 |
.Post(noModItems);
|