/// <summary> /// asserts the script text without all the stuff i don't care about (comments, imports, etc) /// </summary> /// <param name="expectedText"></param> protected void AssertScriptTextForFunctionIs(string expectedText, ScriptExtensions expectedExtensions = ScriptExtensions.None) { string scriptText = GetScriptText(); var scriptLines = scriptText.Split(Environment.NewLine); scriptLines = scriptLines.Skip(1) .Where(ln => !ln.StartsWith("import")) .Where(ln => !ln.Trim().StartsWith("/*")) .Where(ln => !ln.Trim().StartsWith("*")) .Where(ln => !ln.Trim().StartsWith("*/")) .ToArray(); scriptText = string.Join(Environment.NewLine, scriptLines).Trim(); if (expectedExtensions.HasFlag(ScriptExtensions.KeyValueQueryParamHelper) || expectedExtensions.HasFlag(ScriptExtensions.ObjectQueryParamHelper)) { var queryParamHelpers = new QueryParameterHelperFunctions(expectedExtensions.HasFlag(ScriptExtensions.ObjectQueryParamHelper)); expectedText = queryParamHelpers.TransformText() + expectedText; } expectedText = expectedText.Trim(); Assert.AreEqual(expectedText, scriptText); }
public void Write(IScriptWriter writer) { string text = new QueryParameterHelperFunctions(_needsObjHelperFunc).TransformText(); writer.Write(text); }
public void RoutedApiController_ScriptWritten() { ControllerBuilder .AddAttribute(MvcConstants.RouteAttributeFullName_AspNetCore) .AddConstructorArg("\"api/RoutedApi\"") .Commit() .AddMethod("GetThing", "string") .AddScriptActionAttribute() .AddAttribute(MvcConstants.HttpGetAttributeFullName_AspNetCore) .AddConstructorArg("\"thing/{thingId}\"").Commit() .AddParameter("thingId", "string") .AddLineOfCode("return null", 0) .Commit() .AddMethod("PutThingWithQuery", "string") .AddScriptActionAttribute() .AddAttribute(MvcConstants.HttpPutAttributeFullName_AspNetCore) .AddConstructorArg("\"thing/{thingId}/put\"").Commit() .AddParameter("thingId", "string") .AddParameter("query", "string", attribute: MvcConstants.FromQueryAttributeFullName_AspNetCore) .AddParameter("body", "bool", attribute: MvcConstants.FromBodyAttributeFullName_AspNetCore) .AddLineOfCode("return null", 0) .Commit() .AddMethod("DeleteThing", "string") .AddScriptActionAttribute() .AddAttribute(MvcConstants.ToAspNetCoreFullName(MvcConstants.HttpDeleteAttributeName)) .AddConstructorArg("\"thing/{thingId}\"").Commit() .AddParameter("thingId", "string") .AddLineOfCode("return null", 0) .Commit() ; string queryHelpers = new QueryParameterHelperFunctions(false).TransformText(); AssertControllerGeneratedText( #region ScriptText @" import { fetchWrapper } from ""../../FolderM/FolderN/FetchFile""; " + queryHelpers + @" /** * * @param thingId */ export function DeleteThing(thingId: string): void { fetchWrapper(""DELETE"", `/api/RoutedApi/thing/${thingId}`, null); } /** * * @param thingId */ export function GetThing(thingId: string): void { fetchWrapper(""GET"", `/api/RoutedApi/thing/${thingId}`, null); } /** * * @param thingId * @param query * @param body */ export function PutThingWithQuery(thingId: string, query: string, body: boolean): void { const urlParams = new URLSearchParams(); tryAppendKeyValueToUrl(urlParams, ""query"", query); fetchWrapper(""PUT"", `/api/RoutedApi/thing/${thingId}/put${getQueryString(urlParams)}`, body); } " #endregion ); }