public void ChangeAllFeatureProperties() { using (HttpClient client = ApiHttpClient.Create()) { var webserverFeature = Utils.GetFeature(client, HANDLERS_URL, null, null); Assert.NotNull(webserverFeature); AllowOverride(client, webserverFeature); TestScopedFeature(client, webserverFeature); Sites.EnsureNoSite(client, TEST_SITE_NAME); var site = Sites.CreateSite(client, TEST_SITE_NAME, Utils.GetAvailablePort(), Sites.TEST_SITE_PATH); Assert.NotNull(site); try { var siteFeature = Utils.GetFeature(client, HANDLERS_URL, site.Value <string>("name"), "/"); Assert.NotNull(siteFeature); AllowOverride(client, siteFeature); TestScopedFeature(client, siteFeature); client.Delete(Utils.Self(siteFeature)); } finally { Sites.EnsureNoSite(client, site.Value <string>("name")); } } }
public void CreateChangeRemoveHandler() { var handler = JObject.FromObject(new { name = "test_handler", path = "*.test", verbs = "*", type = "Microsoft.IIS.Administration.Test.Type", modules = "ManagedPipelineHandler", script_processor = "", resource_type = "unspecified", require_access = "script", allow_path_info = false, precondition = "integratedMode" }); using (var client = ApiHttpClient.Create()) { var webserverFeature = Utils.GetFeature(client, HANDLERS_URL, null, null); Assert.NotNull(webserverFeature); var h = GetHandler(client, webserverFeature, handler.Value <string>("name")); if (h != null) { Assert.True(client.Delete(Utils.Self(h))); } JObject createdHandler, patchedHandler = null; createdHandler = CreateHandlerForFeature(client, webserverFeature, handler); Assert.NotNull(createdHandler); try { AssertHandlersEquals(handler, createdHandler); string patchName = handler.Value <string>("name") + "2"; h = GetHandler(client, webserverFeature, patchName); if (h != null) { Assert.True(client.Delete(Utils.Self(h))); } createdHandler["name"] = patchName; createdHandler["path"] = createdHandler.Value <string>("path") + "2"; createdHandler["verbs"] = "GET"; createdHandler["type"] = createdHandler.Value <string>("type") + "2"; createdHandler["modules"] = ""; createdHandler["script_processor"] = "some.dll"; createdHandler["resource_type"] = "file"; createdHandler["require_access"] = "write"; createdHandler["allow_path_info"] = !createdHandler.Value <bool>("allow_path_info"); createdHandler["precondition"] = ""; patchedHandler = client.Patch(Utils.Self(createdHandler), createdHandler); Assert.NotNull(patchedHandler); AssertHandlersEquals(createdHandler, patchedHandler); Assert.True(client.Delete(Utils.Self(patchedHandler))); } finally { if (createdHandler != null) { client.Delete(Utils.Self(createdHandler)); } if (patchedHandler != null) { client.Delete(Utils.Self(patchedHandler)); } } } }