Projekt

Obecné

Profil

Stáhnout (16.2 KB) Statistiky
| Větev: | Tag: | Revize:
1
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
namespace ServerAppFunctionalTests.ParserTests
10
{
11
    /// <summary>
12
    /// Testing class for JisParser
13
    /// </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

    
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
        #endregion
201

    
202
        #region Parse hours
203

    
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
        [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
}
(1-1/5)