Projekt

Obecné

Profil

Stáhnout (16.2 KB) Statistiky
| Větev: | Tag: | Revize:
1 8a243ab2 A-Konig
using Microsoft.VisualStudio.TestTools.UnitTesting;
2
using System;
3
using ServerApp.Parser.Parsers;
4
using System.Collections.Generic;
5
using ServerApp.Parser.OutputInfo;
6
using Moq;
7
using ServerApp.Parser.InputData;
8
9 847434c6 Roman Kalivoda
namespace ServerAppFunctionalTests.ParserTests
10 8a243ab2 A-Konig
{
11
    /// <summary>
12 23e8ae04 A-Konig
    /// Testing class for JisParser
13 8a243ab2 A-Konig
    /// </summary>
14
    [TestClass]
15
    public class JisParserTesting
16
    {
17
18
19
        #region Jis parser
20
21
        #region Parse days
22
        [TestMethod]
23
        public void ParseJisDayOne()
24
        {
25
            TagInfo.CreateDictionaries();
26
27
            string path = "";
28
            List<JisInstance> data = new List<JisInstance>();
29
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
30
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 10, 0, 0), 3));
31
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
32
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
33
34
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
35
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
36
37
            JisParser target = new JisParser(dl.Object);
38
            PrivateObject obj = new PrivateObject(target);
39
40
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1), new DateTime(2001, 1, 1));
41
42
            Assert.AreEqual(2, retVal.Count);
43
            Assert.AreEqual(new ActivityInfo("MENZA", 3, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[0]);
44
            Assert.AreEqual(new ActivityInfo("KARMA", 5, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[1]);
45
        }
46
47
        [TestMethod]
48
        public void ParseJisDayOneFiltering()
49
        {
50
            TagInfo.CreateDictionaries();
51
52
            string path = "";
53
            List<JisInstance> data = new List<JisInstance>();
54
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 6, 0, 0), 2));
55
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
56
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 10, 0, 0), 3));
57
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
58
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
59
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 17, 0, 0), 2));
60
61
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
62
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
63
64
            JisParser target = new JisParser(dl.Object);
65
            PrivateObject obj = new PrivateObject(target);
66
67
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1), new DateTime(2000, 1, 1, 16, 0, 0));
68
69
            Assert.AreEqual(2, retVal.Count);
70
            Assert.AreEqual(new ActivityInfo("MENZA", 3, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[0]);
71
            Assert.AreEqual(new ActivityInfo("KARMA", 5, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[1]);
72
        }
73
74
        [TestMethod]
75
        public void ParseJisDayTwo()
76
        {
77
            TagInfo.CreateDictionaries();
78
79
            string path = "";
80
            List<JisInstance> data = new List<JisInstance>();
81
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
82
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 10, 0, 0), 3));
83
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
84
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
85
86
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 2, 1, 8, 0, 0), 8));
87
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 2, 1, 12, 0, 0), 2));
88
            data.Add(new JisInstance("A2", new DateTime(2000, 2, 1, 16, 0, 0), 1));
89
90
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
91
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
92
93
            JisParser target = new JisParser(dl.Object);
94
            PrivateObject obj = new PrivateObject(target);
95
96
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1), new DateTime(2000, 2, 1, 16, 0, 0));
97
98
            Assert.AreEqual(4, retVal.Count);
99
            Assert.AreEqual(new ActivityInfo("MENZA", 3, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[0]);
100
            Assert.AreEqual(new ActivityInfo("KARMA", 5, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[1]);
101
102
            Assert.AreEqual(new ActivityInfo("MENZA", 10, new DateTime(2000, 2, 1, 7, 0, 0), 18 - 7), retVal[2]);
103
            Assert.AreEqual(new ActivityInfo("KARMA", 1, new DateTime(2000, 2, 1, 7, 0, 0), 18 - 7), retVal[3]);
104
        }
105
106
        [TestMethod]
107
        public void ParseJisDayTwoFiltering()
108
        {
109
            TagInfo.CreateDictionaries();
110
111
            string path = "";
112
            List<JisInstance> data = new List<JisInstance>();
113
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 6, 0, 0), 2));
114
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
115
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 10, 0, 0), 3));
116
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
117
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
118
119
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 2, 1, 8, 0, 0), 8));
120
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 2, 1, 12, 0, 0), 2));
121
            data.Add(new JisInstance("A2", new DateTime(2000, 2, 1, 16, 0, 0), 1));
122
            data.Add(new JisInstance("A2", new DateTime(2000, 2, 1, 17, 0, 0), 2));
123
124
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
125
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
126
127
            JisParser target = new JisParser(dl.Object);
128
            PrivateObject obj = new PrivateObject(target);
129
130
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1), new DateTime(2000, 2, 1, 16, 0, 0));
131
132
            Assert.AreEqual(4, retVal.Count);
133
            Assert.AreEqual(new ActivityInfo("MENZA", 3, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[0]);
134
            Assert.AreEqual(new ActivityInfo("KARMA", 5, new DateTime(2000, 1, 1, 7, 0, 0), 18 - 7), retVal[1]);
135
136
            Assert.AreEqual(new ActivityInfo("MENZA", 10, new DateTime(2000, 2, 1, 7, 0, 0), 18 - 7), retVal[2]);
137
            Assert.AreEqual(new ActivityInfo("KARMA", 1, new DateTime(2000, 2, 1, 7, 0, 0), 18 - 7), retVal[3]);
138
        }
139
140
141
        [TestMethod]
142
        public void ParseJisDayNone()
143
        {
144
            TagInfo.CreateDictionaries();
145
146
            string path = "";
147
            List<JisInstance> data = new List<JisInstance>();
148
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
149
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 10, 0, 0), 3));
150
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
151
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
152
153
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 2, 15, 0, 0), 2));
154
155
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
156
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
157
158
            JisParser target = new JisParser(dl.Object);
159
            PrivateObject obj = new PrivateObject(target);
160
161
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 3), new DateTime(2001, 1, 1));
162
163
            Assert.AreEqual(0, retVal.Count);
164
        }
165 3729dcae A-Konig
166
        [TestMethod]
167
        public void ParseJisDayEmpty()
168
        {
169
            string path = "";
170
            List<WeatherInstance> data = new List<WeatherInstance>();
171
172
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
173
            dl.Setup(m => m.LoadWeatherFile(path)).Returns(data);
174
175
            JisParser target = new JisParser(dl.Object);
176
            PrivateObject obj = new PrivateObject(target);
177
178
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1, 8, 0, 0), new DateTime(2001, 1, 1, 11, 0, 0));
179
180
            Assert.AreEqual(0, retVal.Count);
181
        }
182
183
184
        [TestMethod]
185
        public void ParseJisDayNull()
186
        {
187
            string path = "";
188
            List<WeatherInstance> data = null;
189
190
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
191
            dl.Setup(m => m.LoadWeatherFile(path)).Returns(data);
192
193
            JisParser target = new JisParser(dl.Object);
194
            PrivateObject obj = new PrivateObject(target);
195
196
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsDays", path, new DateTime(2000, 1, 1, 8, 0, 0), new DateTime(2001, 1, 1, 11, 0, 0));
197
198
            Assert.AreEqual(0, retVal.Count);
199
        }
200 8a243ab2 A-Konig
        #endregion
201
202
        #region Parse hours
203 3729dcae A-Konig
204
        [TestMethod]
205
        public void ParseJisEmpty()
206
        {
207
            string path = "";
208
            List<WeatherInstance> data = new List<WeatherInstance>();
209
210
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
211
            dl.Setup(m => m.LoadWeatherFile(path)).Returns(data);
212
213
            JisParser target = new JisParser(dl.Object);
214
            PrivateObject obj = new PrivateObject(target);
215
216
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1, 8, 0, 0), new DateTime(2001, 1, 1, 11, 0, 0));
217
218
            Assert.AreEqual(0, retVal.Count);
219
        }
220
221
222
        [TestMethod]
223
        public void ParseJisNull()
224
        {
225
            string path = "";
226
            List<WeatherInstance> data = null;
227
228
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
229
            dl.Setup(m => m.LoadWeatherFile(path)).Returns(data);
230
231
            JisParser target = new JisParser(dl.Object);
232
            PrivateObject obj = new PrivateObject(target);
233
234
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1, 8, 0, 0), new DateTime(2001, 1, 1, 11, 0, 0));
235
236
            Assert.AreEqual(0, retVal.Count);
237
        }
238
239 8a243ab2 A-Konig
        [TestMethod]
240
        public void ParseJisHourlyOne()
241
        {
242
            TagInfo.CreateDictionaries();
243
244
            string path = "";
245
            List<JisInstance> data = new List<JisInstance>();
246
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
247
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 0, 0), 3));
248
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 15, 0), 3));
249
250
            /*
251
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 5));
252
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 12, 0, 0), 1));
253
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 15, 0, 0), 2));
254
            */
255
256
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
257
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
258
259
            JisParser target = new JisParser(dl.Object);
260
            PrivateObject obj = new PrivateObject(target);
261
262
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1), new DateTime(2001, 1, 1));
263
264
            Assert.AreEqual(2, retVal.Count);
265
            Assert.AreEqual(new ActivityInfo("MENZA", 2, new DateTime(2000, 1, 1, 7, 0, 0), 2), retVal[0]);
266
            Assert.AreEqual(new ActivityInfo("KARMA", 6, new DateTime(2000, 1, 1, 7, 0, 0), 2), retVal[1]);
267
        }
268
269
        [TestMethod]
270
        public void ParseJisDayHourlyMultiple()
271
        {
272
            TagInfo.CreateDictionaries();
273
274
            string path = "";
275
            List<JisInstance> data = new List<JisInstance>();
276
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 7, 0, 0), 2));
277
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 0, 0), 3));
278
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 15, 0), 3));
279
280
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 11, 0, 0), 5));
281
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 11, 10, 0), 1));
282
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 11, 20, 0), 2));
283
284
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
285
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
286
287
            JisParser target = new JisParser(dl.Object);
288
            PrivateObject obj = new PrivateObject(target);
289
290
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1), new DateTime(2001, 1, 1));
291
292
            Assert.AreEqual(4, retVal.Count);
293
            Assert.AreEqual(new ActivityInfo("MENZA", 2, new DateTime(2000, 1, 1, 7, 0, 0), 2), retVal[0]);
294
            Assert.AreEqual(new ActivityInfo("KARMA", 6, new DateTime(2000, 1, 1, 7, 0, 0), 2), retVal[1]);
295
            Assert.AreEqual(new ActivityInfo("MENZA", 6, new DateTime(2000, 1, 1, 11, 0, 0), 2), retVal[2]);
296
            Assert.AreEqual(new ActivityInfo("KARMA", 2, new DateTime(2000, 1, 1, 11, 0, 0), 2), retVal[3]);
297
        }
298
299
        [TestMethod]
300
        public void ParseJisHourlyNone()
301
        {
302
            TagInfo.CreateDictionaries();
303
304
            string path = "";
305
            List<JisInstance> data = new List<JisInstance>();
306
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 3, 0, 0), 2));
307
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 4, 0, 0), 3));
308
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 5, 15, 0), 3));
309
310
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 19, 0, 0), 5));
311
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 19, 10, 0), 1));
312
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 19, 20, 0), 2));
313
314
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
315
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
316
317
            JisParser target = new JisParser(dl.Object);
318
            PrivateObject obj = new PrivateObject(target);
319
320
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1), new DateTime(2001, 1, 1));
321
322
            Assert.AreEqual(0, retVal.Count);
323
        }
324
325
        [TestMethod]
326
        public void ParseJisHourlyFiltering()
327
        {
328
            TagInfo.CreateDictionaries();
329
330
            string path = "";
331
            List<JisInstance> data = new List<JisInstance>();
332
            data.Add(new JisInstance("MenzaKL-vydej", new DateTime(2000, 1, 1, 6, 0, 0), 2));
333
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 0, 0), 3));
334
            data.Add(new JisInstance("A2-Hlavni vchod", new DateTime(2000, 1, 1, 8, 15, 0), 3));
335
336
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 11, 0, 0), 5));
337
            data.Add(new JisInstance("Menza4-kasa5", new DateTime(2000, 1, 1, 18, 10, 0), 1));
338
            data.Add(new JisInstance("A1", new DateTime(2000, 1, 1, 19, 20, 0), 2));
339
340
            Mock<IDataLoader> dl = new Mock<IDataLoader>();
341
            dl.Setup(m => m.LoadJisFile(path)).Returns(data);
342
343
            JisParser target = new JisParser(dl.Object);
344
            PrivateObject obj = new PrivateObject(target);
345
346
            List<ActivityInfo> retVal = (List<ActivityInfo>)obj.Invoke("ProcessOneJisFileAsIntervals", path, 2, new DateTime(2000, 1, 1), new DateTime(2001, 1, 1));
347
348
            Assert.AreEqual(3, retVal.Count);
349
            Assert.AreEqual(new ActivityInfo("KARMA", 6, new DateTime(2000, 1, 1, 7, 0, 0), 2), retVal[0]);
350
            Assert.AreEqual(new ActivityInfo("MENZA", 5, new DateTime(2000, 1, 1, 11, 0, 0), 2), retVal[1]);
351
            Assert.AreEqual(new ActivityInfo("MENZA", 1, new DateTime(2000, 1, 1, 17, 0, 0), 2), retVal[2]);
352
        }
353
        #endregion
354
355
        #endregion
356
357
    }
358
}