public override void Specify()
        {
            var configuredRunspace = arrange(() => PowershallRunspaceFactory.GetPowershellRunspace());

            it("can set hosts when hosts file is empty", () =>
            {
                var address  = "192.168.0.12";
                var hostName = "someserver.net";

                var hostsFile = ReadWriteScenario.GetFileWithContents(@"", Encoding.UTF8);

                run_set_host_command(configuredRunspace, hostName, address, hostsFile);

                Encoding ignored;
                var result = ReadWriteScenario.ReadFileContents(hostsFile, out ignored);

                expect(() => result == "192.168.0.12\t\tsomeserver.net\r\n");
            });

            it("can set hosts when host file is nonempty", () =>
            {
                var address  = "192.168.0.12";
                var hostName = "someserver.net";

                var hostsFile = ReadWriteScenario.GetFileWithContents(@"
#line 1 meh

127.0.0.1           someotherserver.net

", Encoding.UTF8);

                run_set_host_command(configuredRunspace, hostName, address, hostsFile);

                AssertFile.MatchesIgnoringNewlines(hostsFile, @"
#line 1 meh

192.168.0.12" + "\t\t" + @"someserver.net
127.0.0.1           someotherserver.net

");
            });

            it("can set multiple host files at once", () =>
            {
                var hostsFile = ReadWriteScenario.GetFileWithContents(@"", Encoding.UTF8);

                using (var command = configuredRunspace.CreatePipeline(
                           string.Format("@(@('someserver.net', '192.168.0.12'), @('someOtherServer.net', '192.168.0.1')) | set-HostsFileEntry -f \"{0}\"", hostsFile)))
                {
                    var results = command.Invoke();

                    expect(() => results.Count() == 0);
                }

                Encoding ignored;
                var result = ReadWriteScenario.ReadFileContents(hostsFile, out ignored);

                expect(() => result == "192.168.0.12\t\tsomeserver.net\r\n192.168.0.1\t\tsomeOtherServer.net\r\n");
            });
        }
        public override void Specify()
        {
            var configuredRunspace = arrange(() => PowershallRunspaceFactory.GetPowershellRunspace());

            it("the host entries can be read", () =>
            {
                var hostsFile = SampleHostsFile.AsFile();

                using (var command = configuredRunspace.CreatePipeline("get-HostsFileEntry -f `" + hostsFile + "`"))
                {
                    Collection <PSObject> psResults = command.Invoke();

                    var results = psResults.Select(r => r.BaseObject).Cast <HostsFileEntry>();

                    expect(() => results.Single(r => r.Hostname == "www.testserver.com").Address == "127.0.0.1");
                    expect(() => results.Single(r => r.Hostname == "anotherserver.net").Address == "192.168.1.1");
                }
            });
        }