Example #1
0
        public virtual void TestHostNames()
        {
            //create MachineList with a list of of Hostnames
            IPAddress addressHost1     = Extensions.GetAddressByName("1.2.3.1");
            IPAddress addressHost4     = Extensions.GetAddressByName("1.2.3.4");
            IPAddress addressMockHost4 = Org.Mockito.Mockito.Mock <IPAddress>();

            Org.Mockito.Mockito.When(addressMockHost4.ToString()).ThenReturn("differentName");
            IPAddress addressMockHost5 = Org.Mockito.Mockito.Mock <IPAddress>();

            Org.Mockito.Mockito.When(addressMockHost5.ToString()).ThenReturn("host5");
            MachineList.InetAddressFactory addressFactory = Org.Mockito.Mockito.Mock <MachineList.InetAddressFactory
                                                                                      >();
            Org.Mockito.Mockito.When(addressFactory.GetByName("1.2.3.4")).ThenReturn(addressMockHost4
                                                                                     );
            Org.Mockito.Mockito.When(addressFactory.GetByName("1.2.3.5")).ThenReturn(addressMockHost5
                                                                                     );
            Org.Mockito.Mockito.When(addressFactory.GetByName("host1")).ThenReturn(addressHost1
                                                                                   );
            Org.Mockito.Mockito.When(addressFactory.GetByName("host4")).ThenReturn(addressHost4
                                                                                   );
            MachineList ml = new MachineList(StringUtils.GetTrimmedStringCollection(HostList)
                                             , addressFactory);

            //test for inclusion with an known IP
            Assert.True(ml.Includes("1.2.3.4"));
            //test for exclusion with an unknown IP
            NUnit.Framework.Assert.IsFalse(ml.Includes("1.2.3.5"));
        }
Example #2
0
 /// <summary>Accepts an ip address and return true if ipAddress is in the list</summary>
 /// <param name="ipAddress"/>
 /// <returns>true if ipAddress is part of the list</returns>
 public virtual bool Includes(string ipAddress)
 {
     if (all)
     {
         return(true);
     }
     //check in the set of ipAddresses
     if ((ipAddresses != null) && ipAddresses.Contains(ipAddress))
     {
         return(true);
     }
     //iterate through the ip ranges for inclusion
     if (cidrAddresses != null)
     {
         foreach (SubnetUtils.SubnetInfo cidrAddress in cidrAddresses)
         {
             if (cidrAddress.IsInRange(ipAddress))
             {
                 return(true);
             }
         }
     }
     //check if the ipAddress matches one of hostnames
     if (hostNames != null)
     {
         //convert given ipAddress to hostname and look for a match
         IPAddress hostAddr;
         try
         {
             hostAddr = addressFactory.GetByName(ipAddress);
             if ((hostAddr != null) && hostNames.Contains(hostAddr.ToString()))
             {
                 return(true);
             }
         }
         catch (UnknownHostException)
         {
         }
         //ignore the exception and proceed to resolve the list of hosts
         //loop through host addresses and convert them to ip and look for a match
         foreach (string host in hostNames)
         {
             try
             {
                 hostAddr = addressFactory.GetByName(host);
             }
             catch (UnknownHostException)
             {
                 continue;
             }
             if (hostAddr.GetHostAddress().Equals(ipAddress))
             {
                 return(true);
             }
         }
     }
     return(false);
 }