public void Rfc4343_Section_22_Binary() { var a = new DomainName(@"a\000\\\255z.example"); Assert.AreEqual(2, a.Labels.Count); Assert.AreEqual('a', a.Labels[0][0]); Assert.AreEqual((char)0, a.Labels[0][1]); Assert.AreEqual('\\', a.Labels[0][2]); Assert.AreEqual((char)0xff, a.Labels[0][3]); Assert.AreEqual('z', a.Labels[0][4]); Assert.AreEqual("example", a.Labels[1]); Assert.AreEqual(@"a\000\092\255z.example", a.ToString()); Assert.AreEqual(a, new DomainName(a.ToString())); }
/// <summary> /// Creates a new instance of the <see cref="ServiceProfile"/> class /// with the specified details. /// </summary> /// <param name="instanceName"> /// A unique identifier for the specific service instance. /// </param> /// <param name="serviceName"> /// The <see cref="ServiceName">name</see> of the service. /// </param> /// <param name="port"> /// The TCP/UDP port of the service. /// </param> /// <param name="addresses"> /// The IP addresses of the specific service instance. If <b>null</b> then /// <see cref="MulticastService.GetIPAddresses"/> is used. /// </param> /// <remarks> /// The SRV, TXT and A/AAAA resoruce records are added to the <see cref="Resources"/>. /// </remarks> public ServiceProfile(DomainName instanceName, DomainName serviceName, ushort port, IEnumerable <IPAddress> addresses = null) { InstanceName = instanceName; ServiceName = serviceName; var fqn = FullyQualifiedName; var simpleServiceName = new DomainName(ServiceName.ToString() .Replace("._tcp", "") .Replace("._udp", "") .Trim('_') .Replace("_", "-")); HostName = DomainName.Join(InstanceName, simpleServiceName, Domain); Resources.Add(new SRVRecord { Name = fqn, Port = port, Target = HostName }); Resources.Add(new TXTRecord { Name = fqn, Strings = { "txtvers=1" } }); foreach (var address in addresses ?? MulticastService.GetIPAddresses()) { Resources.Add(AddressRecord.Create(HostName, address)); } }
public void ToCanonical() { var a = new DomainName("My.EXAMPLe.ORg"); Assert.AreEqual("My.EXAMPLe.ORg", a.ToString()); Assert.AreEqual("my.example.org", a.ToCanonical().ToString()); }
public void Root() { var name = new DomainName(""); Assert.AreEqual(0, name.Labels.Count); Assert.AreEqual("", name.ToString()); }
public void TopLevelDomain() { var name = new DomainName("org"); Assert.AreEqual(1, name.Labels.Count); Assert.AreEqual("org", name.Labels[0]); Assert.AreEqual("org", name.ToString()); }
public void FromLabels() { var name = new DomainName("my.example", "org"); Assert.AreEqual(2, name.Labels.Count); Assert.AreEqual("my.example", name.Labels[0]); Assert.AreEqual("org", name.Labels[1]); Assert.AreEqual(@"my\.example.org", name.ToString()); }
public void EscapedDotDigits() { var name = new DomainName(@"my\046example.org"); Assert.AreEqual(2, name.Labels.Count); Assert.AreEqual("my.example", name.Labels[0]); Assert.AreEqual("org", name.Labels[1]); Assert.AreEqual(@"my\.example.org", name.ToString()); }
public void Rfc4343_Section_21_Backslash() { var aslashb = new DomainName(@"a\\b"); Assert.AreEqual(1, aslashb.Labels.Count); Assert.AreEqual(@"a\b", aslashb.Labels[0]); Assert.AreEqual(@"a\092b", aslashb.ToString()); Assert.AreEqual(aslashb, new DomainName(@"a\092b")); }
public void Standard() { var name = new DomainName("my.example.org"); Assert.AreEqual(3, name.Labels.Count); Assert.AreEqual("my", name.Labels[0]); Assert.AreEqual("example", name.Labels[1]); Assert.AreEqual("org", name.Labels[2]); Assert.AreEqual("my.example.org", name.ToString()); }
/// <summary> /// Write a domain name. /// </summary> /// <param name="value"> /// The value to write. /// </param> /// <param name="appendSpace"> /// Write a space after the value. /// </param> public void WriteDomainName(DomainName value, bool appendSpace = true) { WriteStringUnencoded(value.ToString(), appendSpace); }
public void FormattedString() { var name = new DomainName(@"foo ~ \.bar-12A.org"); Assert.AreEqual(@"foo\032~\032\.bar-12A.org", name.ToString()); }