public void WhenSave_AndMasterListContainsEntries_ThenEntriesAreSaved() { // Arrange. string domainName = "stratis.test.com"; IList <IResourceRecord> testResourceRecords = new List <IResourceRecord>() { new IPAddressResourceRecord(new Domain(domainName), IPAddress.Parse("192.168.100.1")), new IPAddressResourceRecord(new Domain(domainName), IPAddress.Parse("192.168.100.2")), new IPAddressResourceRecord(new Domain(domainName), IPAddress.Parse("192.168.100.3")), new IPAddressResourceRecord(new Domain(domainName), IPAddress.Parse("192.168.100.4")) }; var masterFile = new DnsSeedMasterFile(testResourceRecords); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNullOrEmpty(); IList <IPAddressResourceRecord> ipAddressResourceRecords = resourceRecords.OfType <IPAddressResourceRecord>().ToList(); ipAddressResourceRecords.Should().HaveSameCount(testResourceRecords); foreach (IPAddressResourceRecord testResourceRecord in testResourceRecords) { ipAddressResourceRecords.SingleOrDefault(i => i.IPAddress.Equals(testResourceRecord.IPAddress)).Should().NotBeNull(); } } }
public void WhenSave_AndMasterListContainsPointerResourceRecord_ThenEntryIsSaved() { // Arrange var domain = new Domain("stratis.test.com"); var nsDomain = new Domain("pointer.stratis.test.com"); var testResourceRecord = new PointerResourceRecord(domain, nsDomain); var masterFile = new DnsSeedMasterFile(new List <IResourceRecord> { testResourceRecord }); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <PointerResourceRecord> pointerResourceRecord = resourceRecords.OfType <PointerResourceRecord>().ToList(); pointerResourceRecord.Should().HaveCount(1); pointerResourceRecord[0].Name.ToString().Should().Be(domain.ToString()); pointerResourceRecord[0].PointerDomainName.ToString().Should().Be(testResourceRecord.PointerDomainName.ToString()); } }
public void WhenSave_AndMasterListContainsMailExchangeResourceRecord_ThenEntryIsSaved() { // Arrange var domain = new Domain("stratis.test.com"); var exchangeDomain = new Domain("mail.stratis.test.com"); int preference = 10; var testResourceRecord = new MailExchangeResourceRecord(domain, preference, exchangeDomain); var masterFile = new DnsSeedMasterFile(new List <IResourceRecord> { testResourceRecord }); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <MailExchangeResourceRecord> mailExchangeResourceRecords = resourceRecords.OfType <MailExchangeResourceRecord>().ToList(); mailExchangeResourceRecords.Should().HaveCount(1); mailExchangeResourceRecords[0].Name.ToString().Should().Be(domain.ToString()); mailExchangeResourceRecords[0].ExchangeDomainName.ToString().Should().Be(testResourceRecord.ExchangeDomainName.ToString()); mailExchangeResourceRecords[0].Preference.Should().Be(preference); } }
public void WhenSave_AndMasterListContainsCanonicalNameResourceRecord_ThenEntryIsSaved() { // Arrange var domain = new Domain("stratis.test.com"); var cNameDomain = new Domain("www.stratis.test.com"); var testResourceRecord = new CanonicalNameResourceRecord(domain, cNameDomain); var masterFile = new DnsSeedMasterFile(new List <IResourceRecord> { testResourceRecord }); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <CanonicalNameResourceRecord> canonicalResourceRecords = resourceRecords.OfType <CanonicalNameResourceRecord>().ToList(); canonicalResourceRecords.Should().HaveCount(1); canonicalResourceRecords[0].Name.ToString().Should().Be(domain.ToString()); canonicalResourceRecords[0].CanonicalDomainName.ToString().Should().Be(testResourceRecord.CanonicalDomainName.ToString()); } }
public void WhenSave_AndMasterListContainsIPAddressResourceRecord_AndIsIPv6_ThenEntryIsSaved() { // Arrange var domain = new Domain("stratis.test.com"); var testResourceRecord = new IPAddressResourceRecord(domain, IPAddress.Parse("2001:db8:85a3:0:0:8a2e:370:7334")); var masterFile = new DnsSeedMasterFile(new List <IResourceRecord> { testResourceRecord }); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <IPAddressResourceRecord> ipAddressResourceRecords = resourceRecords.OfType <IPAddressResourceRecord>().ToList(); ipAddressResourceRecords.Should().HaveCount(1); ipAddressResourceRecords[0].Name.ToString().Should().Be(domain.ToString()); ipAddressResourceRecords[0].IPAddress.Equals(testResourceRecord.IPAddress); } }
public void WhenSave_AndMasterListContainsNameServerResourceRecord_ThenEntryIsSaved() { // Arrange Domain domain = new Domain("xels.test.com"); Domain nsDomain = new Domain("ns"); NameServerResourceRecord testResourceRecord = new NameServerResourceRecord(domain, nsDomain); DnsSeedMasterFile masterFile = new DnsSeedMasterFile(); masterFile.Add(testResourceRecord); using (MemoryStream stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <NameServerResourceRecord> nameServerResourceRecord = resourceRecords.OfType <NameServerResourceRecord>().ToList(); nameServerResourceRecord.Should().HaveCount(1); nameServerResourceRecord[0].Name.ToString().Should().Be(domain.ToString()); nameServerResourceRecord[0].NSDomainName.ToString().Should().Be(testResourceRecord.NSDomainName.ToString()); } }
public void WhenSave_AndMasterListContainsIPAddressResourceRecord_AndIsIPv4_ThenEntryIsSaved() { // Arrange Domain domain = new Domain("xels.test.com"); IPAddressResourceRecord testResourceRecord = new IPAddressResourceRecord(domain, IPAddress.Parse("192.168.0.1")); DnsSeedMasterFile masterFile = new DnsSeedMasterFile(); masterFile.Add(testResourceRecord); using (MemoryStream stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <IPAddressResourceRecord> ipAddressResourceRecords = resourceRecords.OfType <IPAddressResourceRecord>().ToList(); ipAddressResourceRecords.Should().HaveCount(1); ipAddressResourceRecords[0].Name.ToString().Should().Be(domain.ToString()); ipAddressResourceRecords[0].IPAddress.Equals(testResourceRecord.IPAddress); } }
public void WhenSave_AndStreamIsNull_ThenArgumentNullExceptionIsThrown() { // Arrange. var masterFile = new DnsSeedMasterFile(); Action a = () => { masterFile.Save(null); }; // Act and assert. a.Should().Throw <ArgumentNullException>().Which.Message.Should().Contain("stream"); }
public void WhenSave_AndMasterListContainsStartOfAuthorityResourceRecord_ThenEntryIsSaved() { // Arrange var domain = new Domain("stratis.test.com"); var masterDomain = new Domain("master.test.com"); var responsibleDomain = new Domain("responsible.test.com"); long serialNumber = 12121212; var refreshInterval = new TimeSpan(1111111111); var retryInterval = new TimeSpan(2222222222); var expireInterval = new TimeSpan(3333333333); var minimumTimeToLive = new TimeSpan(4444444444); var testResourceRecord = new StartOfAuthorityResourceRecord( domain, masterDomain, responsibleDomain, serialNumber, refreshInterval, retryInterval, expireInterval, minimumTimeToLive); var masterFile = new DnsSeedMasterFile(new List <IResourceRecord> { testResourceRecord }); using (var stream = new MemoryStream()) { // Act. masterFile.Save(stream); // Assert. stream.Should().NotBeNull(); IList <IResourceRecord> resourceRecords = this.ReadResourceRecords(stream); resourceRecords.Should().NotBeNull(); resourceRecords.Should().NotBeNullOrEmpty(); IList <StartOfAuthorityResourceRecord> startOfAuthorityResourceRecord = resourceRecords.OfType <StartOfAuthorityResourceRecord>().ToList(); startOfAuthorityResourceRecord.Should().HaveCount(1); startOfAuthorityResourceRecord[0].Name.ToString().Should().Be(domain.ToString()); startOfAuthorityResourceRecord[0].MasterDomainName.ToString().Should().Be(masterDomain.ToString()); startOfAuthorityResourceRecord[0].ResponsibleDomainName.ToString().Should().Be(responsibleDomain.ToString()); startOfAuthorityResourceRecord[0].SerialNumber.Should().Be(serialNumber); startOfAuthorityResourceRecord[0].RefreshInterval.Should().Be(refreshInterval); startOfAuthorityResourceRecord[0].RetryInterval.Should().Be(retryInterval); startOfAuthorityResourceRecord[0].ExpireInterval.Should().Be(expireInterval); startOfAuthorityResourceRecord[0].MinimumTimeToLive.Should().Be(minimumTimeToLive); } }