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