/// <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);
        }
Example #2
0
        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
                );
        }