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

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

/*
* 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 java.util.List;

import javax.xml.bind.annotation.XmlElement;

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

public class FieldMultipleTest
{
   @Test
   public void testFieldTypesByteExtraDimensionDeclaration()
   {
      final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
      final FieldSource<JavaClassSource> field = javaClass.addField("public byte content1[], content2;");
      Assert.assertEquals(2, javaClass.getFields().size());
      Assert.assertEquals("content1", field.getName());
      Assert.assertEquals("byte[]", field.getType().getName());
      Assert.assertEquals("byte", field.getType().getQualifiedName());
      Assert.assertTrue(field.getType().isArray());
      Assert.assertEquals(1, field.getType().getArrayDimensions());
   }

   @Test
   public void testMultipleFieldDeclaration() throws Exception
   {
      final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
      javaClass.addField("public String a,b,c[];");
      List<FieldSource<JavaClassSource>> fields = javaClass.getFields();

      Assert.assertEquals(3, fields.size());

      Assert.assertEquals("a", fields.get(0).getName());
      Assert.assertEquals("java.lang.String", fields.get(0).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(0).getType().getName());
      Assert.assertEquals(true, fields.get(0).isPublic());
      Assert.assertFalse(fields.get(0).getType().isArray());

      Assert.assertEquals("b", fields.get(1).getName());
      Assert.assertEquals("java.lang.String", fields.get(1).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(1).getType().getName());
      Assert.assertEquals(true, fields.get(1).isPublic());
      Assert.assertFalse(fields.get(1).getType().isArray());

      Assert.assertEquals("c", fields.get(2).getName());
      Assert.assertEquals("java.lang.String", fields.get(2).getType().getQualifiedName());
      Assert.assertEquals("String[]", fields.get(2).getType().getName());
      Assert.assertEquals(true, fields.get(2).isPublic());
      Assert.assertTrue(fields.get(2).getType().isArray());
      Assert.assertEquals(1, fields.get(2).getType().getArrayDimensions());
   }

   @Test
   public void testMultipleFieldDeclarationWithAnnotation() throws Exception
   {
      final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
      javaClass.addField("@javax.xml.bind.annotation.XmlElement public String a,b,c[];");
      List<FieldSource<JavaClassSource>> fields = javaClass.getFields();

      Assert.assertEquals(3, fields.size());

      Assert.assertEquals("a", fields.get(0).getName());
      Assert.assertEquals("java.lang.String", fields.get(0).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(0).getType().getName());
      Assert.assertFalse(fields.get(0).getType().isArray());
      Assert.assertTrue(fields.get(0).hasAnnotation(XmlElement.class));

      Assert.assertEquals("b", fields.get(1).getName());
      Assert.assertEquals("java.lang.String", fields.get(1).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(1).getType().getName());
      Assert.assertFalse(fields.get(1).getType().isArray());
      Assert.assertTrue(fields.get(1).hasAnnotation(XmlElement.class));

      Assert.assertEquals("c", fields.get(2).getName());
      Assert.assertEquals("java.lang.String", fields.get(2).getType().getQualifiedName());
      Assert.assertEquals("String[]", fields.get(2).getType().getName());
      Assert.assertTrue(fields.get(2).getType().isArray());
      Assert.assertEquals(1, fields.get(2).getType().getArrayDimensions());
      Assert.assertTrue(fields.get(2).hasAnnotation(XmlElement.class));
   }

   @Test
   public void testMultipleFieldDeclarationWithInitializers() throws Exception
   {
      final JavaClassSource javaClass = Roaster.create(JavaClassSource.class);
      javaClass.addField("private static final String a = \"A\",b =\"B\",c[] = {\"C\"};");
      List<FieldSource<JavaClassSource>> fields = javaClass.getFields();

      Assert.assertEquals(3, fields.size());

      Assert.assertEquals("a", fields.get(0).getName());
      Assert.assertEquals("java.lang.String", fields.get(0).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(0).getType().getName());
      Assert.assertEquals(true, fields.get(0).isPrivate());
      Assert.assertEquals(true, fields.get(0).isStatic());
      Assert.assertEquals("A", fields.get(0).getStringInitializer());
      Assert.assertFalse(fields.get(0).getType().isArray());

      Assert.assertEquals("b", fields.get(1).getName());
      Assert.assertEquals("java.lang.String", fields.get(1).getType().getQualifiedName());
      Assert.assertEquals("String", fields.get(1).getType().getName());
      Assert.assertEquals(true, fields.get(1).isPrivate());
      Assert.assertEquals(true, fields.get(1).isStatic());
      Assert.assertEquals("B", fields.get(1).getStringInitializer());
      Assert.assertFalse(fields.get(1).getType().isArray());

      Assert.assertEquals("c", fields.get(2).getName());
      Assert.assertEquals("java.lang.String", fields.get(2).getType().getQualifiedName());
      Assert.assertEquals("String[]", fields.get(2).getType().getName());
      Assert.assertEquals(true, fields.get(2).isPrivate());
      Assert.assertEquals(true, fields.get(2).isStatic());
      Assert.assertEquals("{\"C\"}", fields.get(2).getLiteralInitializer());
      Assert.assertTrue(fields.get(2).getType().isArray());
      Assert.assertEquals(1, fields.get(2).getType().getArrayDimensions());
   }

}
TOP

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

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.