GraphQLCodegenFileCreatorTest.java 2.4 KB
Newer Older
1 2
package com.kobylynskyi.graphql.codegen;

梦境迷离's avatar
梦境迷离 已提交
3 4
import com.kobylynskyi.graphql.codegen.java.JavaMapperFactoryImpl;
import com.kobylynskyi.graphql.codegen.mapper.DataModelMapperFactory;
5 6
import com.kobylynskyi.graphql.codegen.model.DataModelFields;
import com.kobylynskyi.graphql.codegen.model.GeneratedInformation;
7 8 9 10
import com.kobylynskyi.graphql.codegen.model.GeneratedLanguage;
import com.kobylynskyi.graphql.codegen.model.MappingConfig;
import com.kobylynskyi.graphql.codegen.model.MappingContext;
import com.kobylynskyi.graphql.codegen.model.definitions.ExtendedDocument;
11 12 13 14 15 16
import com.kobylynskyi.graphql.codegen.model.exception.UnableToCreateFileException;
import com.kobylynskyi.graphql.codegen.utils.Utils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;

import java.io.File;
17
import java.io.IOException;
18
import java.util.Collections;
19 20 21
import java.util.HashMap;
import java.util.Map;

22
import static java.util.Collections.singletonList;
23 24 25 26 27
import static org.junit.jupiter.api.Assertions.assertThrows;

class GraphQLCodegenFileCreatorTest {

    public static final File OUTPUT_DIR = new File("build/dir");
梦境迷离's avatar
梦境迷离 已提交
28
    private static final MapperFactory MAPPER_FACTORY = new JavaMapperFactoryImpl();
29 30 31 32 33 34 35

    @AfterEach
    void cleanup() {
        Utils.deleteDir(OUTPUT_DIR);
    }

    @Test
36 37 38 39
    void generateFile() throws IOException {
        MappingConfig mappingConfig = new MappingConfig();
        mappingConfig.setGeneratedLanguage(GeneratedLanguage.JAVA);
        ExtendedDocument extendedDocument = GraphQLDocumentParser.getDocumentFromSchemas(mappingConfig, singletonList("src/test/resources/schemas/test.graphqls"));
梦境迷离's avatar
梦境迷离 已提交
40
        MappingContext mappingContext = new MappingContext(mappingConfig, extendedDocument, new GeneratedInformation(), new DataModelMapperFactory(MAPPER_FACTORY));
41

42 43
        Map<String, Object> dataModel = new HashMap<>();
        dataModel.put(DataModelFields.CLASS_NAME, "Class1");
44
        dataModel.put(DataModelFields.ANNOTATIONS, Collections.emptyList());
45
        dataModel.put(DataModelFields.GENERATED_ANNOTATION, false);
46
        dataModel.put(DataModelFields.GENERATED_INFO, new GeneratedInformation());
47

48
        GraphQLCodegenFileCreator.generateFile(mappingContext, FreeMarkerTemplateType.ENUM, dataModel, OUTPUT_DIR);
49
        assertThrows(UnableToCreateFileException.class,
50
                () -> GraphQLCodegenFileCreator.generateFile(mappingContext, FreeMarkerTemplateType.ENUM, dataModel, OUTPUT_DIR));
51
    }
52
}