Package org.jboss.forge.test.roaster.model

Source Code of org.jboss.forge.test.roaster.model.JavaSourceCompatibilityTest

/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.test.roaster.model;

import org.jboss.forge.roaster.Roaster;
import org.jboss.forge.roaster.model.JavaType;
import org.jboss.forge.roaster.model.source.JavaClassSource;
import org.jboss.forge.roaster.model.source.JavaInterfaceSource;
import org.junit.Assert;
import org.junit.Test;

public class JavaSourceCompatibilityTest
{

   @Test
   public void testSupportsGenericsSource() throws Exception
   {
      JavaType<?> source = Roaster
               .parse("public class Test{public void test() {java.util.List<String> s = new java.util.ArrayList<String>(); for (String item : s){}}}");
      Assert.assertFalse(source.hasSyntaxErrors());
   }

   @Test
   public void testSupportsGenericsSourceFromConstructor() throws Exception
   {
      JavaType<?> source = Roaster
               .parse("public class Test{public Test() {java.util.List<String> s = new java.util.ArrayList<String>(); for (String item : s){}}}");
      Assert.assertFalse(source.hasSyntaxErrors());
   }

   @Test
   public void testSupportsGenericsSourceFromMethod() throws Exception
   {
      JavaClassSource source = Roaster.parse(JavaClassSource.class, "public class Test{}");
      source.addMethod("public void test() {java.util.List<String> s = new java.util.ArrayList<String>(); for (String item : s){}}");
      Assert.assertFalse(source.hasSyntaxErrors());
   }

   @Test
   public void testSupportsGenericsSourceFromAddedConstructor() throws Exception
   {
      JavaClassSource source = Roaster.parse(JavaClassSource.class, "public class Test{}");
      // Add a new method to get JDT to recognize the new ASTs
      source.addMethod().setConstructor(true)
               .setBody("java.util.List<String> s = new java.util.ArrayList<String>(); for (String item : s){}");
      // Forces a rewrite to happen via AbstractJavaSource
      source.toString();
      Assert.assertFalse(source.hasSyntaxErrors());
   }

   @Test
   public void testSupportsGenericsSourceFromAddedMethod() throws Exception
   {
      JavaClassSource source = Roaster.parse(JavaClassSource.class, "public class Test{}");
      // Add a new method to get JDT to recognize the new ASTs
      source.addMethod().setName("test")
               .setBody("java.util.List<String> s = new java.util.ArrayList<String>(); for (String item : s){}");
      // Forces a rewrite to happen via AbstractJavaSource
      source.toString();
      Assert.assertFalse(source.hasSyntaxErrors());
   }

   @Test
   public void testSupportsDefaultMethods() throws Exception
   {
      JavaInterfaceSource source = Roaster.parse(JavaInterfaceSource.class,
               "public interface Test{ public default String blah() {return null;}}");
      // Forces a rewrite to happen via AbstractJavaSource
      source.toString();
      Assert.assertFalse(source.hasSyntaxErrors());
   }
}
TOP

Related Classes of org.jboss.forge.test.roaster.model.JavaSourceCompatibilityTest

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.