[Test] public void NUnitTests_Cassini_Ctor()
        {
            // Checks that the Ctor doesn't start the server
            var nUnitTests_Cassini = new NUnitTests_Cassini();

            nUnitTests_Cassini.apiCassini.assert_Null();
            nUnitTests_Cassini.webRoot.assert_Folder_Not_Exists();
            nUnitTests_Cassini.port.assert_Default();
        }
        [Test] public void start()
        {
            // stop() is also tests here

            var nUnitTests_Cassini = new NUnitTests_Cassini();

            nUnitTests_Cassini.apiCassini.assert_Null();
            nUnitTests_Cassini.webRoot.assert_Folder_Not_Exists();
            nUnitTests_Cassini.port.assert_Default();

            nUnitTests_Cassini.start();

            nUnitTests_Cassini.port.tcpClient().assert_Not_Null();

            nUnitTests_Cassini.stop();
            nUnitTests_Cassini.port.tcpClient().assert_Null();
            nUnitTests_Cassini.webRoot.assert_Folder_Not_Exists();
        }
        public void Get_Html_From_Txt_and_Aspx_Files()
        {
            var nUnitTests_Cassini = new NUnitTests_Cassini();

            nUnitTests_Cassini.start();
            var apiCassini = nUnitTests_Cassini.apiCassini;
            var webRoot    = nUnitTests_Cassini.webRoot;

            webRoot.assert_Folder_Exists();

            Action <string, string, string> checkFileViaHttp =
                (fileName, fileContents, expectedResponse) =>
            {
                var filePath = webRoot.pathCombine(fileName);
                Assert.IsFalse(filePath.fileExists());
                if (fileContents.valid())
                {
                    fileContents.saveAs(filePath);
                    Assert.IsTrue(filePath.fileExists());
                }
                var fileUrl = apiCassini.url() + fileName;
                var html    = fileUrl.html();
                Assert.AreEqual(expectedResponse, html);
                filePath.file_Delete();
                Assert.IsFalse(filePath.fileExists());
            };

            checkFileViaHttp("test_File1.txt", "", "");
            checkFileViaHttp("test_File2.txt", "Some contents ...", "Some contents ...");
            checkFileViaHttp("test_File3.txt", "Some contents changed", "Some contents changed");
            checkFileViaHttp("test_ASPX1.aspx", "<%=\"Hello from ASPX\"%>", "Hello from ASPX");
            checkFileViaHttp("test_ASPX2.aspx", "<%=\"Hello Again\"%>", "Hello Again");

            nUnitTests_Cassini.stop();

            webRoot.assert_Folder_Not_Exists();
        }