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();
- }
-}