예제 #1
0
        public void SmallCountTest()
        {
            var report = new ReportPopularServers(serversTable, new MockTimeGetter(new DateTime(51634312)));

            var result =
                ((IEnumerable <PopularServersServer>)report.Process(new CountParameters {
                Count = 2
            }, new object()))
                .ToArray();

            Assert.AreEqual(2, result.Length);
            Assert.AreEqual("1.2.3.4-567", result[0].Endpoint);
            Assert.AreEqual("hostname-6556", result[1].Endpoint);
        }
예제 #2
0
        public void CachingTest()
        {
            var timeGetter = new MockTimeGetter(new DateTime(51634312));
            var report     = new ReportPopularServers(serversTable, timeGetter);

            var result =
                ((IEnumerable <PopularServersServer>)report.Process(new CountParameters {
                Count = 10
            }, new object()))
                .ToArray();

            serversTable.Elements.Add(new Server
            {
                Endpoint             = "another-42",
                Info                 = new ServerInfo(),
                AverageMatchesPerDay = 0
            });
            var result2 =
                ((IEnumerable <PopularServersServer>)report.Process(new CountParameters {
                Count = 10
            }, new object()))
                .ToArray();

            serversTable.Elements.Add(new Server
            {
                Endpoint             = "another-4242",
                Info                 = new ServerInfo(),
                AverageMatchesPerDay = 0
            });
            timeGetter.Time += new TimeSpan(0, 15, 0);
            var result3 =
                ((IEnumerable <PopularServersServer>)report.Process(new CountParameters {
                Count = 10
            }, new object()))
                .ToArray();

            // Should be both 3, as result is cached
            Assert.AreEqual(3, result.Length);
            Assert.AreEqual(3, result2.Length);
            // This should be 5, as we added 2 elements and 15 minutes "passed"
            Assert.AreEqual(5, result3.Length);
        }