package com.codiform.moo; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import com.codiform.moo.configuration.Configuration; import com.codiform.moo.session.TranslationSession; import com.codiform.moo.session.TranslationSource; @RunWith(MockitoJUnitRunner.class) public class MooTest { @Mock private TranslationSession session; @Mock private Configuration configuration; private Moo moo = new TestMoo(configuration); private Integer source = new Integer(24); @Test public void testMooTranslateCanCreateCurriedTranslate() { Assert.assertNotNull(moo.translate(String.class)); } @Test public void testMooTranslateTranslatesInNewSession() { moo.translate(source, String.class); Mockito.verify(session).getTranslation(source, String.class); } @Test public void testMooTranslateEachListTranslatesEachInNewSession() { List<Integer> sources = Arrays.asList(1, 2, 3); moo.translateEach(sources, String.class); Mockito.verify(session).getEachTranslation(sources, String.class); } @Test public void testMooTranslateEachSetTranslatesEachInNewSession() { Set<Integer> sources = new HashSet<Integer>( Arrays.asList(1, 2, 3) ); moo.translateEach(sources, String.class); Mockito.verify(session).getEachTranslation(sources, String.class); } @Test public void testMooTranslateEachCollectionTranslatesEachInNewSession() { Collection<Integer> sources = new HashSet<Integer>( Arrays.asList(1, 2, 3) ); moo.translateEach(sources, String.class); Mockito.verify(session).getEachTranslation(sources, String.class); } private class TestMoo extends Moo { public TestMoo(Configuration configuration) { super(configuration); } @Override protected TranslationSource newSession() { return session; } } }