Example #1
0
                    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 SocketImpl(MockDatagramSocketFactory socketFactory)
                    {
                        if (socketFactory == null)
                        {
                            throw new ArgumentNullException("socketFactory");
                        }

                        m_socketFactory = socketFactory;
                    }
Example #4
0
            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);
            }