You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2012/06/21 21:35:35 UTC

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

Branch: refs/heads/master
Commit: ac83e0e5988c71b006b993c142111b6a25a5dbb8
Parents: f4ac4aa
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Thu Jun 21 11:34:04 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Thu Jun 21 11:34:04 2012 -0700

----------------------------------------------------------------------
 .../ioc/specs/ValueObjectProviderSpec.groovy       |   80 ++++++++++
 .../internal/services/ValueObjectProviderTest.java |  120 ---------------
 2 files changed, 80 insertions(+), 120 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ac83e0e5/tapestry-ioc/src/test/groovy/ioc/specs/ValueObjectProviderSpec.groovy
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/ValueObjectProviderSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/ValueObjectProviderSpec.groovy
new file mode 100644
index 0000000..cba6865
--- /dev/null
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/ValueObjectProviderSpec.groovy
@@ -0,0 +1,80 @@
+package ioc.specs
+
+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.Value
+import org.apache.tapestry5.ioc.internal.services.ValueObjectProvider
+import org.apache.tapestry5.ioc.services.SymbolSource
+import org.apache.tapestry5.ioc.services.TypeCoercer
+import spock.lang.Specification
+
+class ValueObjectProviderSpec extends Specification {
+
+  SymbolSource symbolSource = Mock()
+  TypeCoercer coercer = Mock()
+  AnnotationProvider annotationProvider = Mock()
+  ObjectLocator locator = Mock()
+
+  ObjectProvider provider = new ValueObjectProvider(symbolSource, coercer)
+
+  def "@Value annotation not present"() {
+
+    when:
+
+    def value = provider.provide(Runnable, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Value) >> null
+
+    value == null
+  }
+
+  def "symbols in @Value annotation are expanded, then coerced"() {
+    def annotationValue = '${foo}'
+    def expanded = 'Foo'
+    Runnable coerced = Mock()
+    Value value = Mock()
+
+    when:
+
+    def result = provider.provide(Runnable, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Value) >> value
+    1 * annotationProvider.getAnnotation(IntermediateType) >> null
+    1 * value.value() >> annotationValue
+    1 * symbolSource.expandSymbols(annotationValue) >> expanded
+    1 * coercer.coerce(expanded, Runnable) >> coerced
+
+    result.is coerced
+  }
+
+  def "if @IntermediateType is present, then coercion occurs in two steps"() {
+    def annotationValue = '${foo}'
+    def expanded = 'Foo'
+    BigDecimal intermediate = new BigDecimal("1234")
+    Runnable coerced = Mock()
+    Value value = Mock()
+    IntermediateType intermediateType = Mock()
+
+    when:
+
+    def result = provider.provide(Runnable, annotationProvider, locator)
+
+    then:
+
+    1 * annotationProvider.getAnnotation(Value) >> value
+    1 * annotationProvider.getAnnotation(IntermediateType) >> intermediateType
+    1 * intermediateType.value() >> BigDecimal
+    1 * value.value() >> annotationValue
+    1 * symbolSource.expandSymbols(annotationValue) >> expanded
+    1 * coercer.coerce(expanded, BigDecimal) >> intermediate
+    1 * coercer.coerce(intermediate, Runnable) >> coerced
+
+    result.is coerced
+  }
+}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ac83e0e5/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/ValueObjectProviderTest.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/ValueObjectProviderTest.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/ValueObjectProviderTest.java
deleted file mode 100644
index 7c4d7b5..0000000
--- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/services/ValueObjectProviderTest.java
+++ /dev/null
@@ -1,120 +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.annotations.IntermediateType;
-import org.apache.tapestry5.ioc.annotations.Value;
-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.BigDecimal;
-
-public class ValueObjectProviderTest extends IOCTestCase
-{
-    @Test
-    public void no_value_annotation()
-    {
-        SymbolSource symbolSource = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-
-        train_getAnnotation(annotationProvider, Value.class, null);
-
-        replay();
-
-        ValueObjectProvider provider = new ValueObjectProvider(symbolSource, coercer);
-
-        assertNull(provider.provide(Runnable.class, annotationProvider, locator));
-
-        verify();
-    }
-
-    @Test
-    public void value_annotation_present()
-    {
-        SymbolSource symbolSource = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-        String annotationValue = "${foo}";
-        String expanded = "Foo";
-        Runnable coerced = mockRunnable();
-        Value annotation = newValue(annotationValue);
-
-        train_getAnnotation(annotationProvider, Value.class, annotation);
-
-        train_getAnnotation(annotationProvider, IntermediateType.class, null);
-
-        train_expandSymbols(symbolSource, annotationValue, expanded);
-        train_coerce(coercer, expanded, Runnable.class, coerced);
-
-        replay();
-
-        ValueObjectProvider provider = new ValueObjectProvider(symbolSource, coercer);
-
-        assertSame(provider.provide(Runnable.class, annotationProvider, locator), coerced);
-
-        verify();
-    }
-
-    @Test
-    public void intermediate_type()
-    {
-        SymbolSource symbolSource = mockSymbolSource();
-        TypeCoercer coercer = mockTypeCoercer();
-        AnnotationProvider annotationProvider = mockAnnotationProvider();
-        ObjectLocator locator = mockObjectLocator();
-        String annotationValue = "${foo}";
-        String expanded = "Foo";
-        Runnable coerced = mockRunnable();
-        Value annotation = newValue(annotationValue);
-        IntermediateType it = newIntermediateType();
-        BigDecimal intervalue = new BigDecimal("1234");
-
-        train_getAnnotation(annotationProvider, Value.class, annotation);
-
-        train_getAnnotation(annotationProvider, IntermediateType.class, it);
-
-        train_value(it, BigDecimal.class);
-
-        train_expandSymbols(symbolSource, annotationValue, expanded);
-        train_coerce(coercer, expanded, BigDecimal.class, intervalue);
-        train_coerce(coercer, intervalue, Runnable.class, coerced);
-
-        replay();
-
-        ValueObjectProvider provider = new ValueObjectProvider(symbolSource, coercer);
-
-        assertSame(provider.provide(Runnable.class, annotationProvider, locator), coerced);
-
-        verify();
-    }
-
-    private Value newValue(String value)
-    {
-        Value annotation = newMock(Value.class);
-
-        expect(annotation.value()).andReturn(value);
-
-        return annotation;
-    }
-
-
-}