Package net.karneim.pojobuilder.sourcegen

Source Code of net.karneim.pojobuilder.sourcegen.ManualBuilderSourceGenerator_GenerateMinimalManualBuilder_Test

package net.karneim.pojobuilder.sourcegen;

import static org.assertj.core.api.Assertions.assertThat;

import java.io.StringWriter;

import net.karneim.pojobuilder.model.ManualBuilderM;
import net.karneim.pojobuilder.model.TypeM;
import net.karneim.pojobuilder.model.TypeVariableM;
import net.karneim.pojobuilder.testenv.TestBase;

import org.junit.Before;
import org.junit.Test;

import com.squareup.javawriter.JavaWriter;

public class ManualBuilderSourceGenerator_GenerateMinimalManualBuilder_Test extends TestBase {
  StringWriter out;
  JavaWriter writer;
  ManualBuilderSourceGenerator underTest;

  @Before
  public void init() {
    out = new StringWriter();
    writer = new JavaWriter(out);
    underTest = new ManualBuilderSourceGenerator(writer);
  }

  @Test
  public void testGenerateSourceWithMinimalManualBuilder() throws Exception {
    // Given:  @formatter:off
    ManualBuilderM builder = new ManualBuilderM();
    builder.setPojoType(new TypeM("com.example.output", "Sample"));
    builder.setType(new TypeM("com.example.output","SampleBuilder"));
    builder.setBaseType(new TypeM("com.example.output","AbstractSampleBuilder"));
   
    // When:
    underTest.generateSource(builder);
   
    // Then: @formatter:on
    String actual = out.toString().replace("\r", "");
    logDebug(actual);
    String expected = loadResourceFromClasspath("GenerateMinimalManualBuilder.expected.txt");

    assertThat(actual).isEqualTo(expected);
  }

  @Test
  public void testGenerateSourceWithMinimalManualBuilderHavingTypeParameter() throws Exception {
    // Given:  @formatter:off
    ManualBuilderM builder = new ManualBuilderM();
    TypeVariableM T = new TypeVariableM("T")
      .whichExtends(new TypeM("java.lang","Number"));
    builder.setPojoType(new TypeM("com.example.output", "Sample")
      .withTypeParameter(T)
    );
    builder.setType(new TypeM("com.example.output","SampleBuilder")
      .withTypeParameter(T)
    );
    builder.setBaseType(new TypeM("com.example.output","AbstractSampleBuilder")
      .withTypeParameter(T)
    );
   
    // When:
    underTest.generateSource(builder);
   
    // Then: @formatter:on
    String actual = out.toString().replace("\r", "");
    logDebug(actual);
    String expected = loadResourceFromClasspath("GenerateMinimalManualBuilderHavingTypeParameter.expected.txt");

    assertThat(actual).isEqualTo(expected);
  }

}
TOP

Related Classes of net.karneim.pojobuilder.sourcegen.ManualBuilderSourceGenerator_GenerateMinimalManualBuilder_Test

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.