public SocketImpl(MockDatagramSocketFactory socketFactory) { if (socketFactory == null) { throw new ArgumentNullException("socketFactory"); } m_socketFactory = socketFactory; }
public void Test_IQUERY_UDP() { var sendToInvoked = false; var receiveInvoked = false; var disposeInvoked = false; var datagramSocketFactory = new MockDatagramSocketFactory( (data, endpoint) => { Assert.IsNotNull(data); data.ShouldEqual(ExpectedSendData); Assert.AreEqual("192.168.11.1", endpoint.Address.ToString()); Assert.AreEqual((ushort)53, endpoint.Port); Assert.IsFalse(sendToInvoked); Assert.IsFalse(receiveInvoked); Assert.IsFalse(disposeInvoked); sendToInvoked = true; }, buffer => { Assert.IsNotNull(buffer); Assert.AreEqual(512, buffer.Length); Assert.IsTrue(sendToInvoked); Assert.IsFalse(receiveInvoked); Assert.IsFalse(disposeInvoked); Array.Copy(ReceivedData, buffer, ReceivedData.Length); var result = ReceivedData.Length; receiveInvoked = true; return result; }, () => { Assert.IsTrue(sendToInvoked); Assert.IsTrue(receiveInvoked); Assert.IsFalse(disposeInvoked); disposeInvoked = true; }); var options = new DnsResolverOptions { Timeout = 1000, RetryCount = 3, Recursion = true, UseCache = true }; var resolver = new UdpDnsResolver( options, datagramSocketFactory, new IPEndpoint(IPAddress.Parse("192.168.11.1"), 53), new Random(0)); var response = resolver.Query("167.11.168.192.in-addr.arpa", QType.PTR, QClass.IN); Assert.AreEqual(0, response.Error.Length); Assert.AreEqual(1, response.header.ANCOUNT); Assert.AreEqual(1, response.Answers.Count); var answerRR = response.Answers.First(); Assert.AreEqual("167.11.168.192.in-addr.arpa.", answerRR.NAME); Assert.AreEqual(0u, answerRR.TTL); Assert.AreEqual(Class.IN, answerRR.Class); Assert.AreEqual(Lanscan.Networking.Dns.RecordType.PTR, answerRR.Type); Assert.IsInstanceOfType(answerRR.RECORD, typeof(PTRRecord)); var recordPtr = (PTRRecord)answerRR.RECORD; Assert.AreEqual("alpha.example.com.", recordPtr.PTRDNAME); Assert.IsTrue(sendToInvoked); Assert.IsTrue(receiveInvoked); Assert.IsTrue(disposeInvoked); }
public void Test_IQUERY_UDP() { var sendToInvoked = false; var receiveInvoked = false; var disposeInvoked = false; var datagramSocketFactory = new MockDatagramSocketFactory( (data, endpoint) => { Assert.IsNotNull(data); data.ShouldEqual(ExpectedSendData); Assert.AreEqual("192.168.11.1", endpoint.Address.ToString()); Assert.AreEqual((ushort)53, endpoint.Port); Assert.IsFalse(sendToInvoked); Assert.IsFalse(receiveInvoked); Assert.IsFalse(disposeInvoked); sendToInvoked = true; }, buffer => { Assert.IsNotNull(buffer); Assert.AreEqual(512, buffer.Length); Assert.IsTrue(sendToInvoked); Assert.IsFalse(receiveInvoked); Assert.IsFalse(disposeInvoked); Array.Copy(ReceivedData, buffer, ReceivedData.Length); var result = ReceivedData.Length; receiveInvoked = true; return(result); }, () => { Assert.IsTrue(sendToInvoked); Assert.IsTrue(receiveInvoked); Assert.IsFalse(disposeInvoked); disposeInvoked = true; }); var options = new DnsResolverOptions { Timeout = 1000, RetryCount = 3, Recursion = true, UseCache = true }; var resolver = new UdpDnsResolver( options, datagramSocketFactory, new IPEndpoint(IPAddress.Parse("192.168.11.1"), 53), new Random(0)); var response = resolver.Query("167.11.168.192.in-addr.arpa", QType.PTR, QClass.IN); Assert.AreEqual(0, response.Error.Length); Assert.AreEqual(1, response.header.ANCOUNT); Assert.AreEqual(1, response.Answers.Count); var answerRR = response.Answers.First(); Assert.AreEqual("167.11.168.192.in-addr.arpa.", answerRR.NAME); Assert.AreEqual(0u, answerRR.TTL); Assert.AreEqual(Class.IN, answerRR.Class); Assert.AreEqual(Lanscan.Networking.Dns.RecordType.PTR, answerRR.Type); Assert.IsInstanceOfType(answerRR.RECORD, typeof(PTRRecord)); var recordPtr = (PTRRecord)answerRR.RECORD; Assert.AreEqual("alpha.example.com.", recordPtr.PTRDNAME); Assert.IsTrue(sendToInvoked); Assert.IsTrue(receiveInvoked); Assert.IsTrue(disposeInvoked); }