//リフレクションを使用してプライベートメソッドにアクセスする 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 })); }
//リフレクションを使用してプライベートメソッドにアクセスする 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[] {})); }
//リフレクションを使用してプライベートメソッドにアクセスする 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 })); }
//リフレクションを使用してプライベートメソッドにアクセスする 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[] {}); }
public void AAAAタイプでアドレスに矛盾があると例外が発生する() { //setUp var sut = new RrDb(); //exercise RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET. 3600000 AAAA 192.168.0.1"); }
public void DnsTypeの次のカラムのDataが無い場合例外が発生する() { //setUp var sut = new RrDb(); //exercise RrDbTest.AddNamedCaLine(sut, "", ". 3600000 IN NS"); }
public void DnsTypeが無い場合例外が発生する() { //setUp var sut = new RrDb(); //exercise RrDbTest.AddNamedCaLine(sut, "", ". 3600000 IN A.ROOT-SERVERS.NET."); }
public void AAAAタイプで不正なアドレスを指定すると例外が発生する() { //setUp var sut = new RrDb(); //exercise RrDbTest.AddNamedCaLine(sut, "", "A.ROOT-SERVERS.NET. 3600000 AAAA xxx"); }
public void A_AAAA_NS以外タイプは例外が発生する() { //setUp var sut = new RrDb(); //exercise RrDbTest.AddNamedCaLine(sut, "", ". 3600000 IN MX A.ROOT-SERVERS.NET."); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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になる }
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になる }
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)); }
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になる }
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)); }
//リフレクションを使用してプライベートメソッドにアクセスする 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; } }
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)); }
//リフレクションを使用してプライベートメソッドにアクセスする 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; } }
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)); }
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)); }
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)); }
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になる }
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)); }
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)); }
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)); }