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/32e20a28 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/32e20a28 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/32e20a28 Branch: refs/heads/master Commit: 32e20a282784ecc4e8ecdb8da7fe8292320ccd54 Parents: a115ef5 Author: Howard M. Lewis Ship <hls...@gmail.com> Authored: Tue May 8 12:42:32 2012 -0700 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Wed May 16 11:50:13 2012 -0700 ---------------------------------------------------------------------- .../services/MasterObjectProviderImplSpec.groovy | 110 ++++++++++++ .../services/MasterObjectProviderImplTest.java | 129 --------------- 2 files changed, 110 insertions(+), 129 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32e20a28/tapestry-ioc/src/test/groovy/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplSpec.groovy ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/groovy/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplSpec.groovy b/tapestry-ioc/src/test/groovy/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplSpec.groovy new file mode 100644 index 0000000..98fa0a9 --- /dev/null +++ b/tapestry-ioc/src/test/groovy/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplSpec.groovy @@ -0,0 +1,110 @@ +package org.apache.tapestry5.ioc.internal.services + +import org.apache.tapestry5.ioc.AnnotationProvider +import org.apache.tapestry5.ioc.ObjectLocator +import org.apache.tapestry5.ioc.ObjectProvider +import org.apache.tapestry5.ioc.OperationTracker +import org.apache.tapestry5.ioc.internal.QuietOperationTracker +import org.apache.tapestry5.ioc.services.MasterObjectProvider +import spock.lang.Shared +import spock.lang.Specification + +class MasterObjectProviderImplSpec extends Specification { + + @Shared + OperationTracker tracker = new QuietOperationTracker() + + def "found match via first provider"() { + ObjectProvider prov1 = Mock() + ObjectProvider prov2 = Mock() + AnnotationProvider ap = Mock() + ObjectLocator locator = Mock() + Runnable expected = Mock() + + MasterObjectProvider mop = new MasterObjectProviderImpl([prov1, prov2], tracker) + + when: + + assert mop.provide(Runnable, ap, locator, true).is(expected) + + then: + + 1 * prov1.provide(Runnable, ap, locator) >> expected + 0 * _ + } + + def "found match after first provider"() { + ObjectProvider prov1 = Mock() + ObjectProvider prov2 = Mock() + AnnotationProvider ap = Mock() + ObjectLocator locator = Mock() + Runnable expected = Mock() + + MasterObjectProvider mop = new MasterObjectProviderImpl([prov1, prov2], tracker) + + when: + + assert mop.provide(Runnable, ap, locator, true).is(expected) + + then: + + 1 * prov1.provide(Runnable, ap, locator) >> null + + then: + + 1 * prov2.provide(Runnable, ap, locator) >> expected + 0 * _ + } + + def "no match found on optional search returns null"() { + ObjectProvider prov1 = Mock() + ObjectProvider prov2 = Mock() + AnnotationProvider ap = Mock() + ObjectLocator locator = Mock() + + MasterObjectProvider mop = new MasterObjectProviderImpl([prov1, prov2], tracker) + + when: + + assert mop.provide(Runnable, ap, locator, false) == null + + then: + + 1 * prov1.provide(Runnable, ap, locator) >> null + + then: + + 1 * prov2.provide(Runnable, ap, locator) >> null + 0 * _ + } + + def "no match for a required search delegates to the ObjectLocator.getService(Class)"() + { + ObjectProvider prov1 = Mock() + ObjectProvider prov2 = Mock() + AnnotationProvider ap = Mock() + ObjectLocator locator = Mock() + Runnable expected = Mock() + + MasterObjectProvider mop = new MasterObjectProviderImpl([prov1, prov2], tracker) + + when: + + assert mop.provide(Runnable, ap, locator, true).is(expected) + + then: + + 1 * prov1.provide(Runnable, ap, locator) >> null + + then: + + 1 * prov2.provide(Runnable, ap, locator) >> null + + then: + + 1 * locator.getService(Runnable) >> expected + + 0 * _ + + } +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/32e20a28/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplTest.java ---------------------------------------------------------------------- diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplTest.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplTest.java deleted file mode 100644 index fb184e3..0000000 --- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/MasterObjectProviderImplTest.java +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2007 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.internal.services; - -import org.apache.tapestry5.ioc.AnnotationProvider; -import org.apache.tapestry5.ioc.ObjectLocator; -import org.apache.tapestry5.ioc.ObjectProvider; -import org.apache.tapestry5.ioc.internal.QuietOperationTracker; -import org.apache.tapestry5.ioc.services.MasterObjectProvider; -import org.apache.tapestry5.ioc.test.IOCTestCase; -import org.testng.annotations.Test; - -import java.util.Arrays; -import java.util.List; - -public class MasterObjectProviderImplTest extends IOCTestCase -{ - @SuppressWarnings("unchecked") - @Test - public void found_match_first() - { - ObjectProvider prov1 = mockObjectProvider(); - ObjectProvider prov2 = mockObjectProvider(); - Class type = Runnable.class; - AnnotationProvider ap = mockAnnotationProvider(); - ObjectLocator locator = mockObjectLocator(); - Object expected = mockRunnable(); - - train_provide(prov1, type, ap, locator, expected); - - List<ObjectProvider> configuration = Arrays.asList(prov1, prov2); - - replay(); - - MasterObjectProvider master = new MasterObjectProviderImpl(configuration, new QuietOperationTracker()); - - assertSame(master.provide(type, ap, locator, true), expected); - - verify(); - } - - @SuppressWarnings("unchecked") - @Test - public void found_later_match() - { - ObjectProvider prov1 = mockObjectProvider(); - ObjectProvider prov2 = mockObjectProvider(); - Class type = Runnable.class; - AnnotationProvider ap = mockAnnotationProvider(); - ObjectLocator locator = mockObjectLocator(); - Object expected = mockRunnable(); - - train_provide(prov1, type, ap, locator, null); - train_provide(prov2, type, ap, locator, expected); - - List<ObjectProvider> configuration = Arrays.asList(prov1, prov2); - - replay(); - - MasterObjectProvider master = new MasterObjectProviderImpl(configuration, new QuietOperationTracker()); - - assertSame(master.provide(type, ap, locator, true), expected); - - verify(); - } - - @SuppressWarnings("unchecked") - @Test - public void no_match_but_optional() - { - ObjectProvider prov1 = mockObjectProvider(); - ObjectProvider prov2 = mockObjectProvider(); - Class type = Runnable.class; - AnnotationProvider ap = mockAnnotationProvider(); - ObjectLocator locator = mockObjectLocator(); - - train_provide(prov1, type, ap, locator, null); - train_provide(prov2, type, ap, locator, null); - - List<ObjectProvider> configuration = Arrays.asList(prov1, prov2); - - replay(); - - MasterObjectProvider master = new MasterObjectProviderImpl(configuration, new QuietOperationTracker()); - - assertNull(master.provide(type, ap, locator, false)); - - verify(); - } - - @SuppressWarnings("unchecked") - @Test - public void no_match_and_required() - { - ObjectProvider prov1 = mockObjectProvider(); - ObjectProvider prov2 = mockObjectProvider(); - Class type = Runnable.class; - AnnotationProvider ap = mockAnnotationProvider(); - ObjectLocator locator = mockObjectLocator(); - Object expected = mockRunnable(); - - train_provide(prov1, type, ap, locator, null); - train_provide(prov2, type, ap, locator, null); - - train_getService(locator, type, expected); - - List<ObjectProvider> configuration = Arrays.asList(prov1, prov2); - - replay(); - - MasterObjectProvider master = new MasterObjectProviderImpl(configuration, new QuietOperationTracker()); - - assertSame(master.provide(type, ap, locator, true), expected); - - verify(); - } -}