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/ad74a171
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/ad74a171
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/ad74a171

Branch: refs/heads/master
Commit: ad74a171db32c4476cb6ff50352e521fcc26d68c
Parents: 420c5a4
Author: Howard M. Lewis Ship <[email protected]>
Authored: Thu Jun 21 14:16:14 2012 -0700
Committer: Howard M. Lewis Ship <[email protected]>
Committed: Thu Jun 21 14:16:14 2012 -0700

----------------------------------------------------------------------
 .../services/SymbolObjectProviderSpec.groovy       |   82 ++++++++++
 .../services/SymbolObjectProviderTest.java         |  118 ---------------
 2 files changed, 82 insertions(+), 118 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ad74a171/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderSpec.groovy
----------------------------------------------------------------------
diff --git 
a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderSpec.groovy
 
b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderSpec.groovy
new file mode 100644
index 0000000..549dfdc
--- /dev/null
+++ 
b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderSpec.groovy
@@ -0,0 +1,82 @@
+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.annotations.IntermediateType
+import org.apache.tapestry5.ioc.annotations.Symbol
+import org.apache.tapestry5.ioc.services.SymbolSource
+import org.apache.tapestry5.ioc.services.TypeCoercer
+import spock.lang.Specification
+
+class SymbolObjectProviderSpec extends Specification {
+
+  SymbolSource source = Mock()
+  TypeCoercer coercer = Mock()
+  AnnotationProvider annotationProvider = Mock()
+  ObjectLocator locator = Mock()
+
+  def "no @Symbol annotation present"() {
+    ObjectProvider provider = new SymbolObjectProvider(source, coercer)
+
+    when:
+
+    def actual = provider.provide(Long, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Symbol) >> null
+
+    actual == null
+  }
+
+  def "the symbol is expanded and coerced"() {
+    Symbol annotation = Mock()
+    def value = "my-symbol"
+    def expanded = "123"
+    def coerced = 123l
+
+    ObjectProvider provider = new SymbolObjectProvider(source, coercer)
+
+    when:
+
+    def actual = provider.provide(Long, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Symbol) >> annotation
+    1 * annotation.value() >> value
+    1 * source.valueForSymbol(value) >> expanded
+    1 * coercer.coerce(expanded, Long) >> coerced
+
+    actual.is(coerced)
+  }
+
+  def "when @IntermediateType is present, coercion happens in two steps"() {
+    Symbol annotation = Mock()
+    IntermediateType it = Mock()
+    def value = "my-symbol"
+    def expanded = "123"
+    def intermediateCoerced = new Date()
+    def finalCoerced = 123l
+
+    ObjectProvider provider = new SymbolObjectProvider(source, coercer)
+
+    when:
+
+    def actual = provider.provide(Long, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Symbol) >> annotation
+    1 * annotationProvider.getAnnotation(IntermediateType) >> it
+    1 * annotation.value() >> value
+    1 * source.valueForSymbol(value) >> expanded
+    1 * it.value() >> Date
+    1 * coercer.coerce(expanded, Date) >> intermediateCoerced
+    1 * coercer.coerce(intermediateCoerced, Long) >> finalCoerced
+
+    actual.is(finalCoerced)
+
+  }
+}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ad74a171/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderTest.java
----------------------------------------------------------------------
diff --git 
a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderTest.java
 
b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderTest.java
deleted file mode 100644
index d7c404f..0000000
--- 
a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/SymbolObjectProviderTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2007, 2010 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.annotations.IntermediateType;
-import org.apache.tapestry5.ioc.annotations.Symbol;
-import org.apache.tapestry5.ioc.services.SymbolSource;
-import org.apache.tapestry5.ioc.services.TypeCoercer;
-import org.apache.tapestry5.ioc.test.IOCTestCase;
-import org.testng.annotations.Test;
-
-import java.math.BigInteger;
-
-public class SymbolObjectProviderTest extends IOCTestCase
-{
-    @Test
-    public void no_annotation()
-    {
-        SymbolSource source = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-
-        train_getAnnotation(annotationProvider, Symbol.class, null);
-
-        replay();
-
-        ObjectProvider provider = new SymbolObjectProvider(source, coercer);
-
-        assertNull(provider.provide(Long.class, annotationProvider, locator));
-
-        verify();
-    }
-
-    @Test
-    public void annotation_present()
-    {
-        SymbolSource source = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-        String symbolName = "example-symbol";
-        String symbolValue = "symbol-value";
-        Long coercedValue = 123l;
-        Symbol annotation = newSymbol(symbolName);
-
-        train_getAnnotation(annotationProvider, Symbol.class, annotation);
-        train_getAnnotation(annotationProvider, IntermediateType.class, null);
-
-        train_valueForSymbol(source, symbolName, symbolValue);
-
-        train_coerce(coercer, symbolValue, Long.class, coercedValue);
-
-        replay();
-
-        ObjectProvider provider = new SymbolObjectProvider(source, coercer);
-
-        assertSame(provider.provide(Long.class, annotationProvider, locator), 
coercedValue);
-
-        verify();
-    }
-
-    @Test
-    public void intermediate_type()
-    {
-        SymbolSource source = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-        String symbolName = "example-symbol";
-        String symbolValue = "symbol-value";
-        Long coercedValue = 123l;
-        Symbol annotation = newSymbol(symbolName);
-        IntermediateType it = newIntermediateType();
-        BigInteger intervalue = new BigInteger("123");
-
-        train_getAnnotation(annotationProvider, Symbol.class, annotation);
-        train_getAnnotation(annotationProvider, IntermediateType.class, it);
-
-        train_valueForSymbol(source, symbolName, symbolValue);
-
-        expect(it.value()).andReturn(BigInteger.class);
-
-        train_coerce(coercer, symbolValue, BigInteger.class, intervalue);
-        train_coerce(coercer, intervalue, Long.class, coercedValue);
-
-        replay();
-
-        ObjectProvider provider = new SymbolObjectProvider(source, coercer);
-
-        assertSame(provider.provide(Long.class, annotationProvider, locator), 
coercedValue);
-
-        verify();
-
-    }
-
-    private Symbol newSymbol(String symbolName)
-    {
-        Symbol annotation = newMock(Symbol.class);
-        expect(annotation.value()).andReturn(symbolName);
-        return annotation;
-    }
-}

Reply via email to