public async Task PollDoesQueryIfServerChangedBut60SecondsHasNotElapsed() { masterServerClient.ServerResponse = MasterServerResponse(); serverInfoClient.ServerResponse = ServerInfoResponse(); _ = await monitor.Poll(server, source); clientFactory.Reset(); using (MockClient secondServerInfoClient = new MockClient(), secondMasterServerClient = new MockClient()) { secondMasterServerClient.ServerResponse = MasterServerResponse(); secondServerInfoClient.ServerResponse = ServerInfoResponse(); clientFactory.AddClient(secondMasterServerClient); clientFactory.AddClient(secondServerInfoClient); ServerInfo info = await monitor.Poll(new Server("9.9.9.9", 8888), source); Assert.AreEqual("4.3.2.1:4660", info.Address); Assert.AreEqual("SERVER-NAME", info.Name); Assert.AreEqual(23, info.NumPlayers); Assert.AreEqual(42, info.MaxPlayers); Assert.AreEqual(2, clientFactory.MockCalls.Count); Assert.AreEqual("hl2master.steampowered.com", clientFactory.MockCalls[0].Item1); Assert.AreEqual(27011, clientFactory.MockCalls[0].Item2); Assert.AreEqual("4.3.2.1", clientFactory.MockCalls[1].Item1); Assert.AreEqual(4660, clientFactory.MockCalls[1].Item2); CollectionAssert.AreEqual( new byte[] { 0x31, 0xFF, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x2E, 0x30, 0x3A, 0x30, 0x00, 0x5C, 0x67, 0x61, 0x6D, 0x65, 0x5C, 0x44, 0x61, 0x79, 0x5A, 0x5C, 0x67, 0x61, 0x6D, 0x65, 0x61, 0x64, 0x64, 0x72, 0x5C, 0x39, 0x2E, 0x39, 0x2E, 0x39, 0x2E, 0x39, 0x3A, 0x38, 0x38, 0x38, 0x38, 0x00 }, secondMasterServerClient.ServerRequest); CollectionAssert.AreEqual( new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0x54, 0x53, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x20, 0x45, 0x6E, 0x67, 0x69, 0x6E, 0x65, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 0x00 }, secondServerInfoClient.ServerRequest); } }
public void Initialize() { server = new Server("1.2.3.4", 5678); clock = new MockClock(); clock.CurrentTime += TimeSpan.FromSeconds(100); masterServerClient = new MockClient(); serverInfoClient = new MockClient(); clientFactory = new MockClientFactory(masterServerClient); clientFactory.AddClient(serverInfoClient); monitor = new Monitor(clock, clientFactory, new MockLogger()); }