You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2012/05/16 20:50:31 UTC

[24/44] git commit: Convert TestNG to Spock

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 <hl...@gmail.com>
Authored: Tue May 8 12:42:32 2012 -0700
Committer: Howard M. Lewis Ship <hl...@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();
-    }
-}