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();
        }
Beispiel #2
0
 public ConstructorBuilder AddParameter(ParameterBuilder value)
 {
     _parameters.Add(value);
     return(this);
 }
 public MethodBuilder AddParameter(ParameterBuilder value)
 {
     _parameters.Add(value);
     return(this);
 }