/* * Copyright 2015 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.util; import java.util.Date; import org.jboss.forge.roaster.Roaster; import org.jboss.forge.roaster.model.source.JavaClassSource; import org.jboss.forge.roaster.model.source.JavaInterfaceSource; import org.jboss.forge.roaster.model.source.MethodSource; import org.jboss.forge.roaster.model.util.DesignPatterns; import org.junit.Assert; import org.junit.Test; /** * * @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a> */ public class DesignPatternsTest { @Test public void testCreateDecorator() throws Exception { JavaInterfaceSource interfaceClass = Roaster .create(JavaInterfaceSource.class).setPackage("org.test.demo") .setName("CoolOMeter"); MethodSource<JavaInterfaceSource> coolMethod = interfaceClass .addMethod().setReturnTypeVoid().setName("calculateCoolness"); coolMethod.addParameter(String.class, "name"); coolMethod.addParameter(Integer.class, "age"); MethodSource<JavaInterfaceSource> uncoolMethod = interfaceClass .addMethod().setReturnTypeVoid().setName("calculateUnCoolness"); uncoolMethod.addParameter(String.class, "name"); uncoolMethod.addParameter(Integer.class, "age"); JavaClassSource decorator = DesignPatterns.createDecorator(interfaceClass); Assert.assertNotNull(decorator); Assert.assertEquals("CoolOMeterDecorator", decorator.getName()); } @Test public void testCreateBuilder() throws Exception { JavaClassSource javaClass = Roaster .create(JavaClassSource.class).setPackage("org.test.demo") .setName("Customer"); javaClass.addProperty(String.class, "id"); javaClass.addProperty(String.class, "name"); javaClass.addProperty(Date.class, "birthDate"); JavaClassSource builder = DesignPatterns.createBuilder(javaClass); Assert.assertNotNull(builder); Assert.assertEquals("CustomerBuilder", builder.getName()); } }