コード例 #1
0
        public void AddComment_AddsCommentToHostFile()
        {
            var sut = new HostsFile();

            sut.AddComment("Test comment");
            Assert.Equal(1, sut.AllComments().Count());
        }
コード例 #2
0
        public void Constructor_InitialisesCorrectly()
        {
            var sut = new HostsFile();

            Assert.Empty(sut.AllComments());
            Assert.Empty(sut.AllHostEntries());
        }
コード例 #3
0
        public void Constructor_InitialisesCorrectly()
        {
            var sut = new HostsFile();

            Assert.Empty(sut.AllComments());
            Assert.Empty(sut.AllHostEntries());
        }
コード例 #4
0
 HostsFile Load()
 {
     using (var stream = GetStream())
     {
         return(HostsFile.Load(stream));
     }
 }
コード例 #5
0
 public void Commit()
 {
     using (var stream = GetStream())
     {
         HostsFile.Save(stream);
     }
 }
コード例 #6
0
        public void Save_SavesHostFileToStream()
        {
            var actualStream   = new MemoryStream();
            var expectedStream = TestContext.GetResourceStream("FluentInstallation.Web.Hosts.Hosts.txt");

            var hostsFile = new HostsFile();

            hostsFile.AddComment("This is a test comment line 1");
            hostsFile.AddComment("This is a test comment line 2");

            hostsFile.AddHostEntry(new HostEntry()
            {
                IpAddress = "172.0.1.1", HostName = "mysite.co.uk", Description = string.Empty, IsEnabled = true
            });
            hostsFile.AddHostEntry(new HostEntry()
            {
                IpAddress = "172.0.1.2", HostName = "mysite.de", Description = string.Empty, IsEnabled = true
            });
            hostsFile.AddHostEntry(new HostEntry()
            {
                IpAddress = "172.0.1.3", HostName = "mysite.ie", Description = "This is a comment", IsEnabled = true
            });

            hostsFile.Save(actualStream);

            actualStream.Position = 0;
            var actual   = actualStream.ReadToEnd();
            var expected = expectedStream.ReadToEnd();

            Assert.Equal(expected, actual);
        }
コード例 #7
0
        public void AddHostEntry_AddsEntryToHostFile()
        {
            var sut = new HostsFile();

            sut.AddHostEntry(new HostEntry());
            Assert.Equal(1, sut.AllHostEntries().Count());
        }
コード例 #8
0
        public void RemoveComment_RemovesCommentFromHostFile()
        {
            var sut = new HostsFile();
            sut.AddComment("Test comment");

            sut.RemoveComment("Test comment");

            Assert.Empty(sut.AllComments());
        }
コード例 #9
0
        public void Load_LoadsHostsFileFromAStream()
        {
            var hostsFile = HostsFile.Load(TestContext.GetResourceStream("FluentInstallation.Web.Hosts.Hosts.txt"));

            Assert.NotEmpty(hostsFile.AllHostEntries());
            Assert.Equal(3, hostsFile.AllHostEntries().Count());
            Assert.Equal("This is a comment", hostsFile.AllHostEntries().Last().Description);
            Assert.NotEmpty(hostsFile.AllComments());
            Assert.Equal(2, hostsFile.AllComments().Count());
        }
コード例 #10
0
        public IHostsConfigurer RemoveHostEntry(string hostName)
        {
            foreach (HostEntry entry in HostsFile.FindHostEntry(hostName))
            {
                HostsFile.RemoveHostEntry(entry);
                Logger.Info(entry.ContructAddMessage);
            }

            return(this);
        }
コード例 #11
0
        public IHostsConfigurer AddHostEntry(Action <IHostEntryConfigurer> configurer)
        {
            var entry = new HostEntry();

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

            return(this);
        }
コード例 #12
0
        public void RemoveComment_RemovesCommentFromHostFile()
        {
            var sut = new HostsFile();

            sut.AddComment("Test comment");

            sut.RemoveComment("Test comment");

            Assert.Empty(sut.AllComments());
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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());
        }
コード例 #15
0
        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);
        }
コード例 #16
0
        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;
        }
コード例 #17
0
        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);
        }
コード例 #18
0
 public void AddComment_AddsCommentToHostFile()
 {
     var sut = new HostsFile();
     sut.AddComment("Test comment");
     Assert.Equal(1, sut.AllComments().Count());
 }
コード例 #19
0
 public void AddHostEntry_AddsEntryToHostFile()
 {
     var sut = new HostsFile();
     sut.AddHostEntry(new HostEntry());
     Assert.Equal(1, sut.AllHostEntries().Count());
 }
コード例 #20
0
        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());
        }
コード例 #21
0
        public void Save_SavesHostFileToStream()
        {
            var actualStream = new MemoryStream();
            var expectedStream = TestContext.GetResourceStream("FluentInstallation.Web.Hosts.Hosts.txt");

            var hostsFile = new HostsFile();
            hostsFile.AddComment("This is a test comment line 1");
            hostsFile.AddComment("This is a test comment line 2");

            hostsFile.AddHostEntry(new HostEntry() { IpAddress = "172.0.1.1", HostName = "mysite.co.uk", Description = string.Empty, IsEnabled = true });
            hostsFile.AddHostEntry(new HostEntry() { IpAddress = "172.0.1.2", HostName = "mysite.de", Description = string.Empty, IsEnabled = true });
            hostsFile.AddHostEntry(new HostEntry() { IpAddress = "172.0.1.3", HostName = "mysite.ie", Description = "This is a comment", IsEnabled = true });

            hostsFile.Save(actualStream);

            actualStream.Position = 0;
            var actual = actualStream.ReadToEnd();
            var expected = expectedStream.ReadToEnd();

            Assert.Equal(expected, actual);
        }