Пример #1
0
        public void AAAAレコードの処理()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var retName = RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30");

            //verify
            Assert.That(retName, Is.EqualTo("A.ROOT-SERVERS.NET."));
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(1));                                                             //Aaaa
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Aaaa A.ROOT-SERVERS.NET. TTL=0 2001:503:ba3e::2:30")); //TTLは強制的に0になる
        }
Пример #2
0
        public void NSレコードの処理()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            string retName = RrDbTest.AddNamedCaLine(sut, "", ".                        3600000  IN  NS    A.ROOT-SERVERS.NET.");

            //verify
            Assert.That(retName, Is.EqualTo("."));
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(1));                                         //Ns
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Ns . TTL=0 A.ROOT-SERVERS.NET.")); //TTLは強制的に0になる
        }
Пример #3
0
        public void Aレコードの処理()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var retName = RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4");

            //verify
            Assert.That(retName, Is.EqualTo("A.ROOT-SERVERS.NET."));
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(1));                                                 //A
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("A A.ROOT-SERVERS.NET. TTL=0 198.41.0.4")); //TTLは強制的に0になる
        }
Пример #4
0
        public void 件数は4件になる()
        {
            //setUp
            var sut      = new RrDb();
            var expected = 5;

            //exercise
            RrDbTest.InitLocalHost(sut);
            var actual = RrDbTest.Size(sut);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Пример #5
0
        public void 空白行は処理されない()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var expected = 0;

            RrDbTest.AddNamedCaLine(sut, "", "");
            var actual = RrDbTest.Size(sut);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Пример #6
0
        public void CNAMEレコードを読み込んだ時_CNAMEが保存される()
        {
            //setUp
            var sut    = new RrDb();
            var oneDat = new OneDat(true, new[] { "3", "cname", "alias", "255.254.253.252", "0" }, _isSecret);

            //exercise
            RrDbTest.AddOneDat(sut, DomainName, oneDat);

            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(1)); //Cname
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Cname alias.aaa.com. TTL=0 cname.aaa.com."));
        }
Пример #7
0
        public void  一リソースの追加_TTLが0以外の場合は上書きされる()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var ttl = 10u; //最初のリソースはTTL=0以外

            sut.Add(new RrA("domain", ttl, new Ip("1.2.3.4")));
            sut.Add(new RrA("domain", 20, new Ip("1.2.3.4")));
            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(1));        //件数は1件になる
            Assert.That(RrDbTest.Get(sut, 0).Ttl, Is.EqualTo(20)); //TTLは後から追加した20になる
        }
Пример #8
0
        public void AAAAレコードを読み込んだ時_AAAA及びPTRが保存される()
        {
            //setUp
            var sut    = new RrDb();
            var oneDat = new OneDat(true, new[] { "4", "www", "alias", "fe80::f509:c5be:437b:3bc5", "10" }, _isSecret);

            //exercise
            RrDbTest.AddOneDat(sut, DomainName, oneDat);

            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(2)); //AAAA,PTR
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Aaaa www.aaa.com. TTL=0 fe80::f509:c5be:437b:3bc5"));
            Assert.That(print(RrDbTest.Get(sut, 1)), Is.EqualTo("Ptr 5.c.b.3.b.7.3.4.e.b.5.c.9.0.5.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. TTL=0 www.aaa.com."));
        }
Пример #9
0
        public void Aレコードを読み込んだ時_A及びPTRが保存される()
        {
            //setUp
            var sut    = new RrDb();
            var oneDat = new OneDat(true, new[] { "0", "www", "alias", "192.168.0.1", "10" }, _isSecret);

            //exercise
            RrDbTest.AddOneDat(sut, DomainName, oneDat);

            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(2)); //A,PTR
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("A www.aaa.com. TTL=0 192.168.0.1"));
            Assert.That(print(RrDbTest.Get(sut, 1)), Is.EqualTo("Ptr 1.0.168.192.in-addr.arpa. TTL=0 www.aaa.com."));
        }
Пример #10
0
        public void 異なるリソースの追加()
        {
            //setUp
            var sut      = new RrDb();
            var expected = 3; //全部で3件になる

            //exercise
            sut.Add(new RrA("domain", 10, new Ip("1.2.3.4")));
            sut.Add(new RrA("domain", 10, new Ip("3.4.5.6")));
            sut.Add(new RrNs("domain", 10, "ns"));
            var actual = RrDbTest.Size(sut);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Пример #11
0
        public void NSレコードを読み込んだ時_NS_A及びPTRが保存される()
        {
            //setUp
            var sut    = new RrDb();
            var oneDat = new OneDat(true, new[] { "1", "ns", "alias", "111.3.255.0", "0" }, _isSecret);

            //exercise
            RrDbTest.AddOneDat(sut, DomainName, oneDat);

            //verify count
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(3)); //NS,A,PTR
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Ns aaa.com. TTL=0 ns.aaa.com."));
            Assert.That(print(RrDbTest.Get(sut, 1)), Is.EqualTo("A ns.aaa.com. TTL=0 111.3.255.0"));
            Assert.That(print(RrDbTest.Get(sut, 2)), Is.EqualTo("Ptr 0.255.3.111.in-addr.arpa. TTL=0 ns.aaa.com."));
        }
Пример #12
0
        public void MXレコードを読み込んだ時_MX_A及びPTRが保存される()
        {
            //setUp
            var sut    = new RrDb();
            var oneDat = new OneDat(true, new[] { "2", "smtp", "alias", "210.10.2.250", "15" }, _isSecret);

            //exercise
            RrDbTest.AddOneDat(sut, DomainName, oneDat);

            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(3)); //MX,A,PTR
            Assert.That(print(RrDbTest.Get(sut, 0)), Is.EqualTo("Mx aaa.com. TTL=0 15 smtp.aaa.com."));
            Assert.That(print(RrDbTest.Get(sut, 1)), Is.EqualTo("A smtp.aaa.com. TTL=0 210.10.2.250"));
            Assert.That(print(RrDbTest.Get(sut, 2)), Is.EqualTo("Ptr 250.2.10.210.in-addr.arpa. TTL=0 smtp.aaa.com."));
        }
Пример #13
0
        public void 重複する2つのリソースの追加()
        {
            //setUp
            var dat = new Dat(new CtrlType[5]);

            dat.Add(true, "0\twww\talias\t192.168.0.1\t10");
            dat.Add(true, "0\twww\talias\t192.168.0.1\t10");
            var sut = new RrDb(null, null, dat, "example.com", true);
            //(1)a   www.example.com. 192.168.0.1
            //(2)ptr 1.0.168.192.in.addr.ptr  www.example.com.
            var expected = 2;
            //exercise
            var actual = RrDbTest.Size(sut);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Пример #14
0
        public void 追加に成功したばあのSOAレコードの検証()
        {
            //setUp
            RrDb sut = new RrDb();

            sut.Add(new RrNs("aaa.com.", 0, "ns.aaa.com."));
            //exercise
            RrDbTest.InitSoa(sut, "aaa.com.", "*****@*****.**", 1, 2, 3, 4, 5);
            //verify
            Assert.That(RrDbTest.Size(sut), Is.EqualTo(2)); //NS及びSOAの2件になっている
            RrSoa o = (RrSoa)RrDbTest.Get(sut, 1);

            Assert.That(o.NameServer, Is.EqualTo("ns.aaa.com."));
            Assert.That(o.PostMaster, Is.EqualTo("root.aaa.com.")); //変換が完了している(@=>. 最後に.追加)
            Assert.That(o.Serial, Is.EqualTo(1));
            Assert.That(o.Refresh, Is.EqualTo(2));
            Assert.That(o.Retry, Is.EqualTo(3));
            Assert.That(o.Expire, Is.EqualTo(4));
            Assert.That(o.Minimum, Is.EqualTo(5));
        }
Пример #15
0
        public void GetListを使用すると期限の切れたリソースが削除される()
        {
            //setUp
            var ttl = 1u; //TTL=1秒
            var sut = new RrDb(null, null, null, "example.com", true);

            sut.Add(new RrA("www.example.com.", ttl, new Ip("1.1.1.1")));
            sut.Add(new RrA("www.example.com.", ttl, new Ip("2.2.2.2")));
            var expected = 0;

            TestUtil.WaitDisp("RrDb.getList()で期限切れリソースの削除を確認するため、TTL指定時間が経過するまで待機");
            Thread.Sleep(2000); //2秒経過
            //exercise
            sut.GetList("www.example.com.", DnsType.A);
            var actual = RrDbTest.Size(sut); //DBのサイズは0になっている

            //verify
            Assert.That(actual, Is.EqualTo(expected));
            //TearDown
            TestUtil.WaitDisp(null);
        }