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