Ejemplo n.º 1
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.addOneDat(string,OneDat)
        public static bool InitSoa(RrDb sut, string domainName, string mail, uint serial, uint refresh, uint retry, uint expire, uint minimum)
        {
            var type = sut.GetType();
            var func = type.GetMethod("InitSoa", BindingFlags.NonPublic | BindingFlags.Instance);

            return((bool)func.Invoke(sut, new object[] { domainName, mail, serial, refresh, retry, expire, minimum }));
        }
Ejemplo n.º 2
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.size()
        public static int Size(RrDb sut)
        {
            var type = sut.GetType();
            var func = type.GetMethod("Size", BindingFlags.NonPublic | BindingFlags.Instance);

            return((int)func.Invoke(sut, new object[] {}));
        }
Ejemplo n.º 3
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.get(int)
        public static OneRr Get(RrDb sut, int index)
        {
            var type = sut.GetType();
            var func = type.GetMethod("Get", BindingFlags.NonPublic | BindingFlags.Instance);

            return((OneRr)func.Invoke(sut, new object[] { index }));
        }
Ejemplo n.º 4
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.initLocalHost()
        public static void InitLocalHost(RrDb sut)
        {
            var type = sut.GetType();
            var func = type.GetMethod("InitLocalHost", BindingFlags.NonPublic | BindingFlags.Instance);

            func.Invoke(sut, new object[] {});
        }
Ejemplo n.º 5
0
        public void AAAAタイプでアドレスに矛盾があると例外が発生する()
        {
            //setUp
            var sut = new RrDb();

            //exercise
            RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET.      3600000      AAAA     192.168.0.1");
        }
Ejemplo n.º 6
0
        public void DnsTypeの次のカラムのDataが無い場合例外が発生する()
        {
            //setUp
            var sut = new RrDb();

            //exercise
            RrDbTest.AddNamedCaLine(sut, "", ".                        3600000  IN  NS");
        }
Ejemplo n.º 7
0
        public void DnsTypeが無い場合例外が発生する()
        {
            //setUp
            var sut = new RrDb();

            //exercise
            RrDbTest.AddNamedCaLine(sut, "", ".                        3600000  IN      A.ROOT-SERVERS.NET.");
        }
Ejemplo n.º 8
0
        public void AAAAタイプで不正なアドレスを指定すると例外が発生する()
        {
            //setUp
            var sut = new RrDb();

            //exercise
            RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET.      3600000      AAAA     xxx");
        }
Ejemplo n.º 9
0
        public void A_AAAA_NS以外タイプは例外が発生する()
        {
            //setUp
            var sut = new RrDb();

            //exercise
            RrDbTest.AddNamedCaLine(sut, "", ".                        3600000  IN  MX    A.ROOT-SERVERS.NET.");
        }
Ejemplo n.º 10
0
        public void 新規のリソース追加は成功する()
        {
            //setUp
            var sut      = new RrDb();
            var expected = true; //成功
            //exercise
            var actual = sut.Add(new RrA("domain", 100, new Ip("1.2.3.4")));

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 11
0
        public void  前補完_指定されない場合_前行と同じになる()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var expected = "before.aaa.com.";
            var actual   = RrDbTest.AddNamedCaLine(sut, "before.aaa.com.", "     3600000      A     198.41.0.4");

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 12
0
        public void 予め同一ドメインのNSレコードが無い場合失敗する_レコードが無い()
        {
            //setUp
            RrDb sut      = new RrDb();
            bool expected = false;
            //exercise
            bool actual = RrDbTest.InitSoa(sut, "aaa.com.", "mail.", 1, 2, 3, 4, 5);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 13
0
        public void  前補完_アットマークの場合ドメイン名になる()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var expected = "example.com.";
            var actual   = RrDbTest.AddNamedCaLine(sut, "", "@      3600000      A     198.41.0.4");

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 14
0
        public void  前補完_最後にドットが無い場合_ドメイン名が補完される()
        {
            //setUp
            var sut = new RrDb();
            //exercise
            var expected = "www.example.com.";
            var actual   = RrDbTest.AddNamedCaLine(sut, "", "www      3600000      A     198.41.0.4");

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 15
0
        public void getDomainNameの確認_Datで初期化された場合指定されたドメインになる()
        {
            //setUp
            var sut      = new RrDb(null, null, null, "example.com", true);
            var expected = "example.com.";
            //exercise
            var actual = sut.GetDomainName();

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 16
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になる
        }
Ejemplo n.º 17
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になる
        }
Ejemplo n.º 18
0
        public void getDomainNameの確認_namedcaで初期化された場合ルートになる()
        {
            //setUp
            var namedCaPath = Path.GetTempFileName();
            var sut         = new RrDb(namedCaPath, 2400);
            var expected    = ".";
            //exercise
            var actual = sut.GetDomainName();

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 19
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になる
        }
Ejemplo n.º 20
0
        public void 予め同一ドメインのNSレコードが無い場合失敗する_NSレコードはあるがドメインが違う()
        {
            //setUp
            RrDb sut      = new RrDb();
            bool expected = false;

            sut.Add(new RrNs("bbb.com.", 0, "ns.bbb.com.")); //NSレコードはあるがドメインが違う
            //exercise
            bool actual = RrDbTest.InitSoa(sut, "aaa.com.", "mail.", 1, 2, 3, 4, 5);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 21
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.addOneDat(string,OneDat)
        public static void AddOneDat(RrDb sut, string domainName, OneDat oneDat)
        {
            var type = sut.GetType();
            var func = type.GetMethod("AddOneDat", BindingFlags.NonPublic | BindingFlags.Instance);

            try{
                func.Invoke(sut, new object[] { domainName, oneDat });
            } catch (Exception e) {
                //リフレクションで呼び出したメソッドで例外が発生すると、System.Reflection.TargetInvocationException
                //でラップされて、InnerException プロパティに発生した例外が設定される
                throw e.InnerException;
            }
        }
Ejemplo n.º 22
0
        public void Findによる検索_ヒットするデータが存在しない場合()
        {
            //setUp
            var sut = new RrDb(null, null, null, "example.com", true);

            sut.Add(new RrA("www1.example.com.", 100, new Ip("192.168.0.1")));
            var expected = false;
            //exercise
            var actual = sut.Find("www.example.com.", DnsType.A);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 23
0
        //リフレクションを使用してプライベートメソッドにアクセスする RrDb.addNamedCaLine(string tmpName, string str)
        public static string AddNamedCaLine(RrDb sut, string tmpName, string str)
        {
            var type = sut.GetType();
            var func = type.GetMethod("AddNamedCaLine", BindingFlags.NonPublic | BindingFlags.Instance);

            try{
                return((string)func.Invoke(sut, new object[] { tmpName, str }));
            } catch (Exception e) {
                //リフレクションで呼び出したメソッドで例外が発生すると、System.Reflection.TargetInvocationException
                //でラップされて、InnerException プロパティに発生した例外が設定される
                throw e.InnerException;
            }
        }
Ejemplo n.º 24
0
        public void 予め同一ドメインのNSレコードが無い場合失敗する_ドメインは同じだがNSレコードではない()
        {
            //setUp
            RrDb sut      = new RrDb();
            bool expected = false;

            sut.Add(new RrA("aaa.com.", 0, new Ip("192.168.0.1"))); //ドメインは同じだがNSレコードではない
            //exercise
            bool actual = RrDbTest.InitSoa(sut, "aaa.com.", "mail.", 1, 2, 3, 4, 5);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 25
0
        public void GetListによる検索_名前が同じでタイプのデータが存在する場合()
        {
            //setUp
            var sut = new RrDb(null, null, null, "example.com", true);

            sut.Add(new RrAaaa("www.example.com.", 100, new Ip("::1")));
            var expected = 0;
            //exercise
            var actual = sut.GetList("www.example.com.", DnsType.A).Count;

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 26
0
        public void getListによる検索_ヒットするデータが存在する場合()
        {
            //setUp
            var sut = new RrDb(null, null, null, "example.com", true);

            sut.Add(new RrA("www.example.com.", 100, new Ip("192.168.0.1")));
            var expected = 1;
            //exercise
            int actual = sut.GetList("www.example.com.", DnsType.A).Count;

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }
Ejemplo n.º 27
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になる
        }
Ejemplo n.º 28
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));
        }
Ejemplo n.º 29
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));
        }
Ejemplo n.º 30
0
        public void 予め同一ドメインのNSレコードが有る場合成功する()
        {
            //setUp
            RrDb sut      = new RrDb();
            bool expected = true;

            sut.Add(new RrNs("aaa.com.", 0, "ns.aaa.com."));
            //exercise
            bool actual = RrDbTest.InitSoa(sut, "aaa.com.", "mail.", 1, 2, 3, 4, 5);

            //verify
            Assert.That(actual, Is.EqualTo(expected));
        }