47bbe5b43dacdf3aa3e24162bca71bbf53d7272e
[mdsal.git] / binding2 / mdsal-binding2-java-api-generator / src / test / java / org / opendaylight / mdsal / binding / javav2 / java / api / generator / GeneratorJavaFileTest.java
1 /*
2  * Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.mdsal.binding.javav2.java.api.generator;
9
10 import java.io.BufferedReader;
11 import java.io.File;
12 import java.io.FileReader;
13 import java.io.IOException;
14 import java.util.ArrayList;
15 import java.util.List;
16 import org.junit.Assert;
17 import org.junit.Test;
18 import org.opendaylight.mdsal.binding.javav2.generator.api.BindingGenerator;
19 import org.opendaylight.mdsal.binding.javav2.generator.impl.BindingGeneratorImpl;
20 import org.opendaylight.mdsal.binding.javav2.model.api.Type;
21 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
22 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
23 import org.sonatype.plexus.build.incremental.BuildContext;
24 import org.sonatype.plexus.build.incremental.DefaultBuildContext;
25
26 public class GeneratorJavaFileTest {
27
28     @Test
29     public void generatedFilesTest() throws Exception {
30         final File[] listFiles = new File(getClass().getResource("/base/with_import/").toURI()).listFiles();
31         final SchemaContext context = YangParserTestUtils.parseYangFiles(listFiles);
32         final BindingGenerator bindingGenerator = new BindingGeneratorImpl(true);
33         final List<Type> types = bindingGenerator.generateTypes(context, context.getModules());
34         final BuildContext buildContext = new DefaultBuildContext();
35         final GeneratorJavaFile gjf = new GeneratorJavaFile(buildContext, types);
36         final File persistentSourcesDirectory =
37                 new File(GeneratorJavaFileTest.class.getResource("/base").getPath());
38         final File generatedSourcesDirectory =
39                 new File(GeneratorJavaFileTest.class.getResource("/base").getPath());
40         final List<File> generateToFile = gjf.generateToFile(generatedSourcesDirectory, persistentSourcesDirectory);
41         for (final File f : generateToFile) {
42             Assert.assertNotNull(f);
43         }
44         final List<String> files = new ArrayList<>();
45         for (final File file : generateToFile) {
46             BufferedReader br = null;
47             FileReader fr = null;
48             try {
49                 fr = new FileReader(file.getAbsolutePath());
50                 br = new BufferedReader(fr);
51                 final StringBuilder sb = new StringBuilder();
52                 String sCurrentLine;
53                 while ((sCurrentLine = br.readLine()) != null) {
54                     sb.append(sCurrentLine).append('\n');
55                 }
56                 files.add(sb.toString());
57             } catch (final IOException e) {
58                 e.printStackTrace();
59             } finally {
60                 try {
61                     if (br != null) {
62                         br.close();
63                     }
64                     if (fr != null) {
65                         fr.close();
66                     }
67                 } catch (final IOException ex) {
68                     ex.printStackTrace();
69                 }
70             }
71         }
72
73         for (final String s : files) {
74             Assert.assertNotNull(s);
75             Assert.assertTrue(!s.isEmpty());
76         }
77
78         for (final File file2 : generateToFile) {
79             file2.delete();
80         }
81     }
82 }