Ejemplo n.º 1
0
 public static IEnumerable <TSLField> RandomFields(this TSLGeneratorContext context)
 {
     while (true)
     {
         var optional = ContinuousUniform.Sample(context.MasterRandom, 0.0, 1.0) <
                        StructSettings.FieldProbabilities.OptionalFieldProbability;
         var name = $"field{context.GeneratedElementCount}";
         var type = context.GenerateRandomFieldType();
         context.GeneratedElementCount += 1;
         // TODO(leasunhy): generate attributes
         var field = new TSLField(type, name, optional, attributes: null);
         yield return(field);
     }
 }
Ejemplo n.º 2
0
        protected void FormatField(TSLField field)
        {
            if (field.Attributes != null && !field.Attributes.IsEmpty)
            {
        #line default
        #line hidden

        #line 111 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
                this.Write("[");


        #line default
        #line hidden

        #line 112 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(string.Join(", ", field.Attributes)));


        #line default
        #line hidden

        #line 112 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
                this.Write("]\r\n");


        #line default
        #line hidden

        #line 113 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            }
            if (field.Optional)
            {
        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
                this.Write("optional ");


        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            }

        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(field.Type.Name));


        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            this.Write(" ");


        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(field.Name));


        #line default
        #line hidden

        #line 114 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
            this.Write(";\r\n");


        #line default
        #line hidden

        #line 115 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\TSLTemplate.tt"
        }
        private Action GenerateTestCodeForEnumField(TestCodeGeneratorContext context, TSLStruct struct_, TSLField field, string writerVarName)
        {
            var fieldType    = (TSLEnum)field.Type;
            var randomMember = fieldType.Members.Choice(context.MasterRandom);
            var enumMember   = $"{fieldType.Name}.{randomMember.Item1}";
            var structMember = $"{writerVarName}.{field.Name}";


        #line default
        #line hidden

        #line 46 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write("\r\n            ");


        #line default
        #line hidden

        #line 48 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture($"{structMember} = {enumMember};"));


        #line default
        #line hidden

        #line 48 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write("\r\n");


        #line default
        #line hidden

        #line 49 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            return(() =>
            {
        #line default
        #line hidden

        #line 51 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("            Assert.That(");


        #line default
        #line hidden

        #line 52 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(structMember));


        #line default
        #line hidden

        #line 52 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 52 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(enumMember));


        #line default
        #line hidden

        #line 52 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n            Assert.That(");


        #line default
        #line hidden

        #line 53 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(({struct_.Name}){writerVarName}).{field.Name}"));


        #line default
        #line hidden

        #line 53 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 53 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(enumMember));


        #line default
        #line hidden

        #line 53 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n            Assert.That(");


        #line default
        #line hidden

        #line 54 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(new {struct_.Name}Reader({writerVarName}.CellPtr, 0)).{field.Name}"));


        #line default
        #line hidden

        #line 54 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 54 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(enumMember));


        #line default
        #line hidden

        #line 54 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n");


        #line default
        #line hidden

        #line 55 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            });
        }
 private Action GenerateTestCodeForStructField(TestCodeGeneratorContext context, TSLStruct struct_, TSLField field, string writerVarName)
 {
     return(() => {});
 }
        private Action GenerateTestCodeForListField(TestCodeGeneratorContext context, TSLStruct struct_, TSLField field, string writerVarName)
        {
            var fieldType    = (ListType)field.Type;
            var randomValue  = fieldType.GetRandomValue(context.MasterRandom);
            var parentMember = $"{writerVarName}.{field.Name}";
            var tempVarName  = $"structFieldTestValue{++context.GeneratedCount}";

            // TODO(leasunhy): support struct lists
            if (fieldType.ElementType.FieldType == TSLFieldTypes.Struct)
            {
                return(null);
            }


        #line default
        #line hidden

        #line 117 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write("        var ");


        #line default
        #line hidden

        #line 118 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 118 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(" = ");


        #line default
        #line hidden

        #line 118 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(randomValue));


        #line default
        #line hidden

        #line 118 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(";\r\n        ");


        #line default
        #line hidden

        #line 119 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(parentMember));


        #line default
        #line hidden

        #line 119 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(" = ");


        #line default
        #line hidden

        #line 119 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 119 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(";\r\n");


        #line default
        #line hidden

        #line 120 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"

            return(() =>
            {
        #line default
        #line hidden

        #line 123 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("        Assert.That(");


        #line default
        #line hidden

        #line 124 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(parentMember));


        #line default
        #line hidden

        #line 124 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 124 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 124 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n        Assert.That(");


        #line default
        #line hidden

        #line 125 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(({struct_.Name}){writerVarName}).{field.Name}"));


        #line default
        #line hidden

        #line 125 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 125 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 125 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n        Assert.That(");


        #line default
        #line hidden

        #line 126 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(new {struct_.Name}Reader({writerVarName}.CellPtr, 0)).{field.Name}"));


        #line default
        #line hidden

        #line 126 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 126 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 126 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n");


        #line default
        #line hidden

        #line 127 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            });
        }
        private Action GenerateTestCodeForAtomField(TestCodeGeneratorContext context, TSLStruct struct_, TSLField field, string writerVarName)
        {
            var fieldType    = (AtomType)field.Type;
            var randomValue  = fieldType.GetRandomValue(context.MasterRandom);
            var parentMember = $"{writerVarName}.{field.Name}";
            var tempVarName  = $"structFieldTestValue{++context.GeneratedCount}";


        #line default
        #line hidden

        #line 92 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write("        var ");


        #line default
        #line hidden

        #line 93 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 93 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(" = ");


        #line default
        #line hidden

        #line 93 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(randomValue));


        #line default
        #line hidden

        #line 93 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(";\r\n        ");


        #line default
        #line hidden

        #line 94 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(parentMember));


        #line default
        #line hidden

        #line 94 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(" = ");


        #line default
        #line hidden

        #line 94 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 94 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            this.Write(";\r\n");


        #line default
        #line hidden

        #line 95 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"

            return(() =>
            {
        #line default
        #line hidden

        #line 98 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("        Assert.That(");


        #line default
        #line hidden

        #line 99 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(parentMember));


        #line default
        #line hidden

        #line 99 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 99 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 99 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n        Assert.That(");


        #line default
        #line hidden

        #line 100 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(({struct_.Name}){writerVarName}).{field.Name}"));


        #line default
        #line hidden

        #line 100 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 100 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 100 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n        Assert.That(");


        #line default
        #line hidden

        #line 101 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture($"(new {struct_.Name}Reader({writerVarName}.CellPtr, 0)).{field.Name}"));


        #line default
        #line hidden

        #line 101 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(", Is.EqualTo(");


        #line default
        #line hidden

        #line 101 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(tempVarName));


        #line default
        #line hidden

        #line 101 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
                this.Write("));\r\n");


        #line default
        #line hidden

        #line 102 "C:\Users\v-siyul.FAREAST\documents\visual studio 2017\Projects\TSLTestGenerator\TSLTestGenerator\Templates\FieldTestCodeTemplate.tt"
            });
        }
// this method returns an action to generate assert statements for later use
        private Action GenerateTestCodeForField(TestCodeGeneratorContext context, TSLStruct struct_, TSLField field, string writerVarName)
        {
            Action assertAction = null;

            switch (field.Type.FieldType)
            {
            case TSLFieldTypes.Enum:
                assertAction = GenerateTestCodeForEnumField(context, struct_, field, writerVarName);
                break;

            case TSLFieldTypes.Array:
                //assertAction = GenerateTestCodeForArrayField(context, struct_, field, writerVarName);
                break;

            case TSLFieldTypes.Atom:
                //assertAction = GenerateTestCodeForAtomField(context, struct_, field, writerVarName);
                break;

            case TSLFieldTypes.List:
                //assertAction = GenerateTestCodeForListField(context, struct_, field, writerVarName);
                break;

            case TSLFieldTypes.Struct:
                //assertAction = GenerateTestCodeForStructField(context, struct_, field, writerVarName);
                break;

            default:
                throw new NotImplementedException();
            }
            assertAction?.Invoke();
            return(assertAction);
        }