public void Constructor_SetsDefaultsCorrectly()
        {
            var hostEntry = new HostEntry();

            Assert.Equal(HostEntry.LocalHostIpAddress, hostEntry.IpAddress);
            Assert.True(hostEntry.IsEnabled);
        }
        public IHostsConfigurer AddHostEntry(Action<IHostEntryConfigurer> configurer)
        {
            var entry = new HostEntry();
            configurer(new HostEntryConfigurer(entry));
            HostsFile.AddHostEntry(entry);
            Logger.Info(entry.ContructAddMessage);

            return this;
        }
Beispiel #3
0
        public IHostsConfigurer AddHostEntry(Action <IHostEntryConfigurer> configurer)
        {
            var entry = new HostEntry();

            configurer(new HostEntryConfigurer(entry));
            HostsFile.AddHostEntry(entry);
            Logger.Info(entry.ContructAddMessage);

            return(this);
        }
        public void AddHostEntry_ShouldNotAddDuplicateEntriesWithTheSameHostNameAndIp()
        {
            var sut = new HostsFile();
            var hostEntry1 = new HostEntry() { HostName = "mysite.co.uk", IsEnabled = true, IpAddress = "192.168.2.1"};
            var hostEntry2 = new HostEntry() { HostName = "mysite.co.uk", IsEnabled = true, IpAddress = "192.168.2.1" };

            sut.AddHostEntry(hostEntry1);
            sut.AddHostEntry(hostEntry2);

            Assert.Equal(1, sut.AllHostEntries().Count());
            Assert.True(sut.AllHostEntries().Last().IsEnabled);
        }
        public void ToString_ReturnsCorrectValueWhenEnabledWithNoDescription()
        {
            var hostEntry = new HostEntry();
            hostEntry.IpAddress = "127.0.0.1";
            hostEntry.IsEnabled = true;
            hostEntry.Description = null;
            hostEntry.HostName = "mysite.co.uk";

            var actual = hostEntry.ToString();
            var expected = "127.0.0.1       mysite.co.uk";

            Assert.Equal(expected, actual);
        }
        public void ToString_ReturnsCorrectValueWhenDisabledWithDescription()
        {
            var hostEntry = new HostEntry();
            hostEntry.IpAddress = "127.0.0.1";
            hostEntry.IsEnabled = false;
            hostEntry.Description = "Some description";
            hostEntry.HostName = "mysite.co.uk";

            var actual = hostEntry.ToString();
            var expected = "# 127.0.0.1       mysite.co.uk\t# Some description";

            Assert.Equal(expected, actual);
        }
        public void TryParse_ParsesCorrectlyWhenValueIsCommentedOutAndHasDescription()
        {
            HostEntry hostEntry = default(HostEntry);
            var       value     = "#127.0.0.1       mysite.co.uk # This is a description";

            var actual = HostEntry.TryParse(value, out hostEntry);

            Assert.True(actual);
            Assert.Equal("127.0.0.1", hostEntry.IpAddress);
            Assert.Equal("mysite.co.uk", hostEntry.HostName);
            Assert.Equal("This is a description", hostEntry.Description);
            Assert.False(hostEntry.IsEnabled);
        }
        public void TryParse_ParsesCorrectlyWhenValueIsAnUncommentedOutEntryWithNoDescription()
        {
            HostEntry hostEntry = default(HostEntry);
            var       value     = "127.0.0.1       mysite.co.uk";

            var actual = HostEntry.TryParse(value, out hostEntry);

            Assert.True(actual);
            Assert.Equal("127.0.0.1", hostEntry.IpAddress);
            Assert.Equal("mysite.co.uk", hostEntry.HostName);
            Assert.Equal("", hostEntry.Description);
            Assert.True(hostEntry.IsEnabled);
        }
        public void ToString_ReturnsCorrectValueWhenEnabledWithDescription()
        {
            var hostEntry = new HostEntry();

            hostEntry.IpAddress   = "127.0.0.1";
            hostEntry.IsEnabled   = true;
            hostEntry.Description = "Some description";
            hostEntry.HostName    = "mysite.co.uk";

            var actual   = hostEntry.ToString();
            var expected = "127.0.0.1       mysite.co.uk\t# Some description";

            Assert.Equal(expected, actual);
        }
        public void RemoveHostEntry_RemovesEntryFromHostFile()
        {
            var sut   = new HostsFile();
            var entry = new HostEntry()
            {
                HostName = "mysite.co.uk"
            };

            sut.AddHostEntry(entry);

            sut.RemoveHostEntry(entry);

            Assert.Empty(sut.AllHostEntries());
        }
        public void ToString_ReturnsCorrectValueWhenDisabledWithNoDescription()
        {
            var hostEntry = new HostEntry();

            hostEntry.IpAddress   = "127.0.0.1";
            hostEntry.IsEnabled   = false;
            hostEntry.Description = null;
            hostEntry.HostName    = "mysite.co.uk";

            var actual   = hostEntry.ToString();
            var expected = "# 127.0.0.1       mysite.co.uk";

            Assert.Equal(expected, actual);
        }
        public void AddHostEntry_ShouldNotAddDuplicateEntriesWithTheSameHostNameAndIp()
        {
            var sut        = new HostsFile();
            var hostEntry1 = new HostEntry()
            {
                HostName = "mysite.co.uk", IsEnabled = true, IpAddress = "192.168.2.1"
            };
            var hostEntry2 = new HostEntry()
            {
                HostName = "mysite.co.uk", IsEnabled = true, IpAddress = "192.168.2.1"
            };

            sut.AddHostEntry(hostEntry1);
            sut.AddHostEntry(hostEntry2);

            Assert.Equal(1, sut.AllHostEntries().Count());
            Assert.True(sut.AllHostEntries().Last().IsEnabled);
        }
        public HostEntry AddHostEntry(HostEntry hostEntry)
        {
            var found = FindHostEntry(hostEntry.HostName);

            foreach (HostEntry entry in FindHostEntry(hostEntry.HostName))
            {
                entry.IsEnabled = false;
            }

            var duplicateEntry = found.FirstOrDefault(x => x.IpAddress.Equals(hostEntry.IpAddress));

            if (duplicateEntry == null)
            {
                _hostEntries.Add(hostEntry);
            }
            else
            {
                duplicateEntry.IsEnabled = true;
            }

            return hostEntry;
        }
        public HostEntry AddHostEntry(HostEntry hostEntry)
        {
            var found = FindHostEntry(hostEntry.HostName);

            foreach (HostEntry entry in FindHostEntry(hostEntry.HostName))
            {
                entry.IsEnabled = false;
            }

            var duplicateEntry = found.FirstOrDefault(x => x.IpAddress.Equals(hostEntry.IpAddress));

            if (duplicateEntry == null)
            {
                _hostEntries.Add(hostEntry);
            }
            else
            {
                duplicateEntry.IsEnabled = true;
            }

            return(hostEntry);
        }
        public static bool TryParse(string value, out HostEntry hostEntry)
        {
            const string matchPattern = @"^(?<IpAddress>[0-9a-f.:]+)\s+(?<HostName>[^\s#]+)(?<Description>.*)$";

            hostEntry = new HostEntry();

            var regex = new Regex(matchPattern);
            var match = regex.Match(value.TrimStart('#'));

            if (match.Success)
            {
                hostEntry = new HostEntry()
                {
                    IpAddress   = match.Groups["IpAddress"].Value,
                    HostName    = match.Groups["HostName"].Value,
                    Description = match.Groups["Description"].Value.Replace("#", string.Empty).Trim(),
                    IsEnabled   = !value.StartsWith("#")
                };
            }

            return(match.Success);
        }
        public static bool TryParse(string value, out HostEntry hostEntry)
        {
            const string matchPattern = @"^(?<IpAddress>[0-9a-f.:]+)\s+(?<HostName>[^\s#]+)(?<Description>.*)$";

            hostEntry = new HostEntry();

            var regex = new Regex(matchPattern);
            var match = regex.Match(value.TrimStart('#'));

            if (match.Success)
            {
               hostEntry = new HostEntry()
               {
                   IpAddress = match.Groups["IpAddress"].Value,
                   HostName = match.Groups["HostName"].Value,
                   Description = match.Groups["Description"].Value.Replace("#", string.Empty).Trim(),
                   IsEnabled = !value.StartsWith("#")
               };
            }

            return match.Success;
        }
        public static HostsFile Load(Stream stream)
        {
            var hostsFile = new HostsFile();

            var reader = new StreamReader(stream);

            while (reader.Peek() >= 0)
            {
                string line = reader.ReadLine();

                HostEntry hostEntry;

                if (HostEntry.TryParse(line, out hostEntry))
                {
                    hostsFile.AddHostEntry(hostEntry);
                }
                else
                {
                    hostsFile.AddComment(line.TrimStart('#'));
                }
            }

            return(hostsFile);
        }
 public void Constructor_SetsDefaultsCorrectly()
 {
     var hostEntry = new HostEntry();
     Assert.Equal(HostEntry.LocalHostIpAddress, hostEntry.IpAddress);
     Assert.True(hostEntry.IsEnabled);
 }
        public void RemoveHostEntry_RemovesEntryFromHostFile()
        {
            var sut = new HostsFile();
            var entry = new HostEntry(){HostName = "mysite.co.uk"};
            sut.AddHostEntry(entry);

            sut.RemoveHostEntry(entry);

            Assert.Empty(sut.AllHostEntries());
        }
 public void RemoveHostEntry(HostEntry entry)
 {
     _hostEntries.Remove(entry);
 }
 public HostEntryConfigurer(HostEntry hostEntry)
 {
     _hostEntry = hostEntry;
 }
 public void RemoveHostEntry(HostEntry entry)
 {
     _hostEntries.Remove(entry);
 }
 public HostEntryConfigurer(HostEntry hostEntry)
 {
     _hostEntry = hostEntry;
 }