Convert TestNG to Spock
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/10efed4b Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/10efed4b Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/10efed4b Branch: refs/heads/master Commit: 10efed4b1b8267046253a7d357bc3ed2d56c46bb Parents: be704f1 Author: Howard M. Lewis Ship <hls...@gmail.com> Authored: Sun Apr 15 06:11:13 2012 -0700 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Wed May 16 11:49:40 2012 -0700 ---------------------------------------------------------------------- .../apache/tapestry/ioc/RegistryBuilderSpec.groovy | 99 +++++++++++++ .../org/apache/tapestry5/ioc/MasterModule.java | 4 +- .../apache/tapestry5/ioc/RegistryBuilderTest.java | 110 --------------- .../test/java/org/apache/tapestry5/ioc/Square.java | 4 +- 4 files changed, 103 insertions(+), 114 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/10efed4b/tapestry-ioc/src/test/groovy/org/apache/tapestry/ioc/RegistryBuilderSpec.groovy ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/groovy/org/apache/tapestry/ioc/RegistryBuilderSpec.groovy b/tapestry-ioc/src/test/groovy/org/apache/tapestry/ioc/RegistryBuilderSpec.groovy new file mode 100644 index 0000000..2b3ff7c --- /dev/null +++ b/tapestry-ioc/src/test/groovy/org/apache/tapestry/ioc/RegistryBuilderSpec.groovy @@ -0,0 +1,99 @@ +package org.apache.tapestry.ioc + +import org.apache.tapestry5.ioc.def.ModuleDef +import org.apache.tapestry5.ioc.internal.DefaultModuleDefImpl +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import spock.lang.Specification +import org.apache.tapestry5.ioc.* + +class RegistryBuilderSpec extends Specification { + + def "@SubModule annotation is honored"() { + when: + + // Borrowed from IntegrationTest, this will only work if both FredModule and BarneyModule + // are loaded. + + Registry r = new RegistryBuilder().add(MasterModule).build() + + def service = r.getService("UnorderedNames", NameListHolder) + + then: + + service.names == ["Beta", "Gamma", "UnorderedNames"] + + cleanup: + + r.shutdown() + } + + def "adding modules by name, in comma seperated list, as from a manifest"() { + when: + + RegistryBuilder builder = new RegistryBuilder() + + IOCUtilities.addModulesInList builder, + "${FredModule.class.name}, ${BarneyModule.class.name}, ${RegistryBuilderTestModule.class.name}" + + Registry registry = builder.build() + + Square service = registry.getService(Square) + + then: + + service.square(4) == 16 + + service.toString() == "<Proxy for Square(${Square.class.name})>" + + cleanup: + + registry.shutdown() + } + + def "exercise RegistryBuilder.buildAndStartupRegistry()"() { + when: + + Registry r = RegistryBuilder.buildAndStartupRegistry(MasterModule); + + NameListHolder service = r.getService("UnorderedNames", NameListHolder); + + then: + + service.names == ["Beta", "Gamma", "UnorderedNames"] + + cleanup: + + r.shutdown(); + } + + def "use explicit ModuleDef with buildAndStartupRegistry()"() { + when: + + Logger logger = LoggerFactory.getLogger(getClass()); + + ModuleDef module = new DefaultModuleDefImpl(ServiceBuilderModule, + logger, null); + + Registry r = RegistryBuilder.buildAndStartupRegistry(module, MasterModule); + + NameListHolder nameListHolder = r.getService("UnorderedNames", NameListHolder); + + then: + + nameListHolder.names == ["Beta", "Gamma", "UnorderedNames"] + + when: + + Greeter greeter = r.getService("Greeter", Greeter) + + then: + + greeter.greeting == "Greetings from service Greeter." + + cleanup: + + r.shutdown(); + + } +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/10efed4b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MasterModule.java ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MasterModule.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MasterModule.java index a26354b..654a733 100644 --- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MasterModule.java +++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MasterModule.java @@ -1,4 +1,4 @@ -// Copyright 2006, 2007 The Apache Software Foundation +// Copyright 2006, 2007, 2012 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ package org.apache.tapestry5.ioc; import org.apache.tapestry5.ioc.annotations.SubModule; /** - * Used by {@link org.apache.tapestry5.ioc.RegistryBuilderTest}. + * Used by {@link org.apache.tapestry5.ioc.RegistryBuilderSpec}. */ @SubModule( { FredModule.class, BarneyModule.class }) http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/10efed4b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/RegistryBuilderTest.java ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/RegistryBuilderTest.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/RegistryBuilderTest.java deleted file mode 100644 index ba5a1ad..0000000 --- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/RegistryBuilderTest.java +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2006, 2007, 2011 The Apache Software Foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package org.apache.tapestry5.ioc; - - -import org.apache.tapestry5.ioc.def.ModuleDef; -import org.apache.tapestry5.ioc.internal.DefaultModuleDefImpl; -import org.apache.tapestry5.ioc.test.IOCTestCase; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.annotations.Test; - -import java.util.Arrays; -import java.util.List; - -public class RegistryBuilderTest extends IOCTestCase -{ - @Test - public void sub_module() - { - RegistryBuilder builder = new RegistryBuilder(); - - builder.add(MasterModule.class); - - Registry r = builder.build(); - - // Borrowed from IntegrationTest, this will only work if both FredModule and BarneyModule - // are loaded. - - NameListHolder service = r.getService("UnorderedNames", NameListHolder.class); - - List<String> names = service.getNames(); - - assertEquals(names, Arrays.asList("Beta", "Gamma", "UnorderedNames")); - - r.shutdown(); - } - - @Test - public void manifest() - { - RegistryBuilder builder = new RegistryBuilder(); - - String value = String.format("%s, %s, %s", FredModule.class.getName(), BarneyModule.class - .getName(), RegistryBuilderTestModule.class.getName()); - - IOCUtilities.addModulesInList(builder, value); - - Registry registry = builder.build(); - - Square service = registry.getService(Square.class); - - assertEquals(service.square(4), 16l); - - // This proves that the IOC works, the service builder method was invoked, that the - // ClassFactory service was accessed and used. - - assertEquals(service.toString(), "<Proxy for Square(org.apache.tapestry5.ioc.Square)>"); - - registry.shutdown(); - } - - @Test - public void build_and_startup_registry_from_modules() - { - Registry r = RegistryBuilder.buildAndStartupRegistry(MasterModule.class); - - NameListHolder service = r.getService("UnorderedNames", NameListHolder.class); - - List<String> names = service.getNames(); - - assertEquals(names, Arrays.asList("Beta", "Gamma", "UnorderedNames")); - - r.shutdown(); - } - - @Test - public void build_and_startup_registry_from_moduledef_and_modules() - { - Logger logger = LoggerFactory.getLogger(getClass()); - - ModuleDef module = new DefaultModuleDefImpl(ServiceBuilderModule.class, logger, null); - - Registry r = RegistryBuilder.buildAndStartupRegistry(module, MasterModule.class); - - NameListHolder nameListHolder = r.getService("UnorderedNames", NameListHolder.class); - - List<String> names = nameListHolder.getNames(); - - assertEquals(names, Arrays.asList("Beta", "Gamma", "UnorderedNames")); - - Greeter gretter = r.getService("Greeter", Greeter.class); - - assertEquals(gretter.getGreeting(), "Greetings from service Greeter."); - - r.shutdown(); - } -} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/10efed4b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/Square.java ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/Square.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/Square.java index 8824caf..3cd7c88 100644 --- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/Square.java +++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/Square.java @@ -1,4 +1,4 @@ -// Copyright 2006 The Apache Software Foundation +// Copyright 2006, 2012 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ package org.apache.tapestry5.ioc; /** - * Used by {@link org.apache.tapestry5.ioc.RegistryBuilderTest}. + * Used by {@link org.apache.tapestry5.ioc.RegistryBuilderSpec}. */ public interface Square {