Package org.junithelper.core.generator

Source Code of org.junithelper.core.generator.ConstructorGeneratorImplTest

package org.junithelper.core.generator;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.junithelper.core.config.Configuration;
import org.junithelper.core.config.LineBreakPolicy;
import org.junithelper.core.config.extension.ExtInstantiation;
import org.junithelper.core.extractor.ClassMetaExtractor;
import org.junithelper.core.meta.ArgTypeMeta;
import org.junithelper.core.meta.ClassMeta;
import org.junithelper.core.meta.ConstructorMeta;
import org.junithelper.core.meta.CurrentLineBreak;

public class ConstructorGeneratorImplTest {

    Configuration config = new Configuration();
    ClassMetaExtractor classMetaExtractor = new ClassMetaExtractor(config);
    ClassMeta targetClassMeta;
    ConstructorGeneratorImpl target;

    @Before
    public void setUp() {
        String sourceCodeString = "package hoge.foo; import java.util.List; public class Sample { public Sample() {}\r\n public int doSomething(String str, long longValue) throws Throwable { System.out.println(\"aaaa\") } }";
        targetClassMeta = classMetaExtractor.extract(sourceCodeString);
        LineBreakProvider lineBreakProvider = new LineBreakProvider(config, CurrentLineBreak.CRLF);
        target = new ConstructorGeneratorImpl(config, lineBreakProvider);
    }

    @Test
    public void type() throws Exception {
        assertNotNull(ConstructorGeneratorImpl.class);
    }

    @Test
    public void instantiation() throws Exception {
        LineBreakProvider lineBreakProvider = new LineBreakProvider(config, CurrentLineBreak.CRLF);
        target = new ConstructorGeneratorImpl(config, lineBreakProvider);
        assertNotNull(target);
    }

    @Test
    public void getAllInstantiationSourceCodeList_A$Configuration$ClassMeta() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        List<String> actual = target.getAllInstantiationSourceCodeList(config, classMeta);
        assertEquals("\t\tSample target = new Sample();\r\n", actual.get(0));
    }

    @Test
    public void getAllInstantiationSourceCodeList_A$Configuration$ClassMeta_FORCE_LF() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        config.lineBreakPolicy = LineBreakPolicy.forceLF;
        LineBreakProvider lineBreakProvider = new LineBreakProvider(config, CurrentLineBreak.CRLF);
        target = new ConstructorGeneratorImpl(config, lineBreakProvider);
        List<String> actual = target.getAllInstantiationSourceCodeList(config, classMeta);
        assertEquals("\t\tSample target = new Sample();\n", actual.get(0));
    }

    @Test
    public void getAllInstantiationSourceCodeList_A$Configuration$ClassMeta_NEW_FILE_ONLY_newFIle() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        config.lineBreakPolicy = LineBreakPolicy.forceNewFileLF;
        LineBreakProvider lineBreakProvider = new LineBreakProvider(config, null);
        target = new ConstructorGeneratorImpl(config, lineBreakProvider);
        List<String> actual = target.getAllInstantiationSourceCodeList(config, classMeta);
        assertEquals("\t\tSample target = new Sample();\n", actual.get(0));
    }

    @Test
    public void getAllInstantiationSourceCodeList_A$Configuration$ClassMeta_NEW_FILE_ONLY() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        config.lineBreakPolicy = LineBreakPolicy.forceNewFileLF;
        LineBreakProvider lineBreakProvider = new LineBreakProvider(config, CurrentLineBreak.CRLF);
        target = new ConstructorGeneratorImpl(config, lineBreakProvider);
        List<String> actual = target.getAllInstantiationSourceCodeList(config, classMeta);
        assertEquals("\t\tSample target = new Sample();\r\n", actual.get(0));
    }

    @Test
    public void getFirstInstantiationSourceCode_A$Configuration$ClassMeta() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        String actual = target.getFirstInstantiationSourceCode(config, classMeta);
        assertEquals("    Sample target = new Sample();\r\n", actual);
    }

    @Test
    public void getInstantiationSourceCode_A$Configuration$ClassMeta$ConstructorMeta() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        ConstructorMeta constructorMeta = target.getFirstConstructor(classMeta);
        String actual = target.getInstantiationSourceCode(config, classMeta, constructorMeta);
        assertEquals("    Sample target = new Sample();\r\n", actual);
    }

    @Test
    public void getInstantiationSourceCode_A$Configuration$ClassMeta$ConstructorMeta_Issue69() throws Exception {
        // given
        ClassMeta classMeta = new ClassMeta();
        classMeta.name = "Sample";
        classMeta.importedList.add("java.util.Calendar");
        ConstructorMeta cons = new ConstructorMeta();
        cons.argNames.add("cal");
        ArgTypeMeta argType = new ArgTypeMeta();
        argType.name = "Calendar";
        argType.nameInMethodName = "Calendar";
        cons.argTypes.add(argType);
        classMeta.constructors.add(cons);
        ConstructorMeta constructorMeta = target.getFirstConstructor(classMeta);
        Configuration config = new Configuration();
        config.isExtensionEnabled = true;
        ExtInstantiation ins = new ExtInstantiation("java.util.Calendar");
        ins.assignCode = "Calendar.getInstance()";
        config.extConfiguration.extInstantiations.add(ins);
        // when
        String actual = target.getInstantiationSourceCode(config, classMeta, constructorMeta);
        // then
        assertEquals("    Calendar cal = Calendar.getInstance();\r\n" + "    Sample target = new Sample(cal);\r\n", actual);
    }

    @Test
    public void getFirstConstructor_A$ClassMeta() throws Exception {
        ClassMeta classMeta = targetClassMeta;
        ConstructorMeta actual = target.getFirstConstructor(classMeta);
        assertNotNull(actual);
    }

}
TOP

Related Classes of org.junithelper.core.generator.ConstructorGeneratorImplTest

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.