public async Task Class_With_Field_Constructor_Property_Method() { // arrange var sb = new StringBuilder(); var writer = new CodeWriter(sb); // act await ClassBuilder.New() .SetName("MyClass") .AddImplements("SomeOtherType") .SetAbstract() .AddField(FieldBuilder.New() .SetName("_foo") .SetType("Bar") .SetReadOnly()) .AddProperty( PropertyBuilder.New() .SetName("Foo") .SetType("Bar") .SetBackingField("_foo")) .AddConstructor(ConstructorBuilder.New() .SetAccessModifier(AccessModifier.Protected) .AddParameter(ParameterBuilder.New() .SetName("foo") .SetType("Bar") .SetDefault()) .AddCode("_foo = foo;")) .AddMethod(MethodBuilder.New() .SetName("GetFooAsync") .SetReturnType("ValueTask<Bar>") .AddCode("return new ValueTask<Bar>(_foo);")) .BuildAsync(writer); // assert sb.ToString().MatchSnapshot(); }
public ConstructorBuilder AddParameter(ParameterBuilder value) { _parameters.Add(value); return(this); }
public MethodBuilder AddParameter(ParameterBuilder value) { _parameters.Add(value); return(this); }