Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 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());
 }