Package br.com.six2six.fixturefactory.transformer

Source Code of br.com.six2six.fixturefactory.transformer.FirstTransformer

package br.com.six2six.fixturefactory.transformer;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import br.com.six2six.fixturefactory.transformer.Transformer;
import br.com.six2six.fixturefactory.transformer.TransformerChain;

public class TransformerChainTest {

    @Test
    public void shouldUseFirstTransformer() {
        TransformerChain transformerChain = new TransformerChain(new FirstTransformer());
        assertEquals("A1", transformerChain.transform("A", String.class));
    }
   
    @Test
    public void shouldUseSecondTransformer() {
        TransformerChain transformerChain = new TransformerChain(new FirstTransformer());
        transformerChain.add(new SecondTransformer());
        assertEquals("B2", transformerChain.transform("B", String.class));       
    }
   
    @Test
    public void shouldUseBothTransformersInOrderOfInclusion() {
        TransformerChain transformerChain = new TransformerChain(new FirstTransformer());
        transformerChain.add(new SecondTransformer());
        assertEquals("AB12", transformerChain.transform("AB", String.class));       
    }
   
    @Test
    public void shouldNotUseAnyOfTheTransformers() {
        TransformerChain transformerChain = new TransformerChain(new FirstTransformer());
        transformerChain.add(new SecondTransformer());
        assertEquals("C", transformerChain.transform("C", String.class));       
    }
}

class FirstTransformer implements Transformer {

    @SuppressWarnings("unchecked")
    public <T> T transform(Object value, Class<T> type) {
        return (T) value.toString().concat("1");
    }

    public boolean accepts(Object value, Class<?> type) {
        return ((String) value).contains("A") && String.class == type;
    }
}

class SecondTransformer implements Transformer {

    @SuppressWarnings("unchecked")
    public <T> T transform(Object value, Class<T> type) {
        return (T) value.toString().concat("2");
    }

    public boolean accepts(Object value, Class<?> type) {
        return ((String) value).contains("B") && String.class == type;
    }
}
TOP

Related Classes of br.com.six2six.fixturefactory.transformer.FirstTransformer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.