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/cf48bba7 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/cf48bba7 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/cf48bba7 Branch: refs/heads/master Commit: cf48bba74bfa575c57ab8073d9bd2367886191ed Parents: 82a3af9 Author: Howard M. Lewis Ship <[email protected]> Authored: Fri Jun 1 18:09:43 2012 -0700 Committer: Howard M. Lewis Ship <[email protected]> Committed: Fri Jun 1 18:09:43 2012 -0700 ---------------------------------------------------------------------- .../tapestry5/util/StrategyRegistrySpec.groovy | 148 ++++++++++++ .../tapestry5/ioc/util/StrategyRegistryTest.java | 177 --------------- 2 files changed, 148 insertions(+), 177 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cf48bba7/tapestry-ioc/src/test/groovy/org/apache/tapestry5/util/StrategyRegistrySpec.groovy ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/groovy/org/apache/tapestry5/util/StrategyRegistrySpec.groovy b/tapestry-ioc/src/test/groovy/org/apache/tapestry5/util/StrategyRegistrySpec.groovy new file mode 100644 index 0000000..30ca282 --- /dev/null +++ b/tapestry-ioc/src/test/groovy/org/apache/tapestry5/util/StrategyRegistrySpec.groovy @@ -0,0 +1,148 @@ +package org.apache.tapestry5.util + +import org.apache.tapestry5.ioc.util.StrategyRegistry +import org.apache.tapestry5.ioc.util.UnknownValueException +import spock.lang.Specification + +class StrategyRegistrySpec extends Specification { + + def "check exception when an adaptor is not found"() { + Runnable r1 = Mock() + Runnable r2 = Mock() + + StrategyRegistry reg = StrategyRegistry.newInstance(Runnable, [ + (List): r1, + (Map): r2 + ]) + + when: + + reg.get(Set) + + then: + + UnknownValueException e = thrown() + + e.message == "No adapter from type java.util.Set to type java.lang.Runnable is available." + e.availableValues.toString() == "AvailableValues[registered types: interface java.util.List, interface java.util.Map]" + + } + + def "access to types registered"() { + Runnable r1 = Mock() + Runnable r2 = Mock() + + when: + + StrategyRegistry sr = StrategyRegistry.newInstance(Runnable, [ + (List): r1, + (Map): r2 + ]) + + then: + + sr.types.size == 2 + sr.types.containsAll(List, Map) + } + + def "locate an adapter based on interface inheritance"() { + + Runnable r1 = Mock() + Runnable r2 = Mock() + + when: + + StrategyRegistry sr = StrategyRegistry.newInstance(Runnable, [ + (List): r1, + (Map): r2 + ]) + + def arrayListAdapter = sr.get(ArrayList) + + then: + + arrayListAdapter.is r1 + + when: + + def adapter2 = sr.get(ArrayList) + + then: + + adapter2.is r1 + + when: + + sr.clearCache() + + def adapter3 = sr.get(ArrayList) + + then: + + adapter3.is r1 + } + + def "the registration map passed to the constructor is copied"() { + + Runnable r1 = Mock() + Runnable r2 = Mock() + + def registrations = [ + (List): r1, + (Map): r2 + ] + + when: + + StrategyRegistry sr = StrategyRegistry.newInstance(Runnable, registrations) + + registrations.clear() + + then: + + sr.get(ArrayList).is(r1) + } + + def "adapter found from an instance"() { + + Runnable r1 = Mock() + Runnable r2 = Mock() + + when: + + StrategyRegistry sr = StrategyRegistry.newInstance(Runnable, [ + (List): r1, + (Map): r2 + ]) + + then: + + sr.getByInstance([]).is(r1) + sr.getByInstance([:]).is(r2) + + when: + + sr.clearCache() + + then: + + sr.getByInstance([]).is(r1) + } + + def "null instances matches against void.class"() { + + Runnable r1 = Mock() + Runnable r2 = Mock() + + when: + + def sr = StrategyRegistry.newInstance(Runnable, [ + (void): r1, + (Map): r2]) + + + then: + + sr.getByInstance(null).is(r1) + } +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/cf48bba7/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/StrategyRegistryTest.java ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/StrategyRegistryTest.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/StrategyRegistryTest.java deleted file mode 100644 index 10aca83..0000000 --- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/util/StrategyRegistryTest.java +++ /dev/null @@ -1,177 +0,0 @@ -// 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. -// 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.util; - -import org.apache.tapestry5.ioc.test.IOCTestCase; -import org.testng.annotations.Test; - -import java.util.*; - -import static org.apache.tapestry5.ioc.internal.util.CollectionFactory.newMap; - -public class StrategyRegistryTest extends IOCTestCase -{ - @Test - public void adapter_not_found() - { - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - - replay(); - - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - try - { - r.get(Set.class); - unreachable(); - } catch (UnknownValueException ex) - { - assertEquals( - ex.getMessage(), - "No adapter from type java.util.Set to type java.lang.Runnable is available."); - assertEquals(ex.getAvailableValues().toString(), "AvailableValues[registered types: interface java.util.List, interface java.util.Map]"); - } - - verify(); - } - - @Test - public void get_types() - { - - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - - replay(); - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - - Collection<Class> types = r.getTypes(); - - assertEquals(types.size(), 2); - assertTrue(types.contains(List.class)); - assertTrue(types.contains(Map.class)); - - verify(); - } - - @Test - public void adapter_not_found_when_non_error() - { - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - - replay(); - - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - Runnable actual = r.get(ArrayList.class); - - assertSame(actual, r1); - - // The cache is almost impossible to "test", but we can at least collect some - // code coverage over those lines. - - Runnable actual2 = r.get(ArrayList.class); - assertSame(actual2, r1); - - r.clearCache(); - - Runnable actual3 = r.get(ArrayList.class); - assertSame(actual3, r1); - - verify(); - } - - @Test - public void registration_map_is_copied_by_constructor() - { - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - - replay(); - - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - registrations.clear(); - - Runnable actual = r.get(ArrayList.class); - - assertSame(actual, r1); - } - - @Test - public void adapter_found_by_instance() - { - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - - replay(); - - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - assertSame(r.getByInstance(registrations), r2); - - verify(); - } - - @Test - public void null_instance_matches_class_void() - { - Runnable r1 = mockRunnable(); - Runnable r2 = mockRunnable(); - Runnable r3 = mockRunnable(); - - replay(); - - Map<Class, Runnable> registrations = newMap(); - - registrations.put(List.class, r1); - registrations.put(Map.class, r2); - registrations.put(void.class, r3); - - StrategyRegistry<Runnable> r = StrategyRegistry.newInstance(Runnable.class, registrations); - - assertSame(r.getByInstance(null), r3); - - verify(); - } -}
