package fr.keemto.provider.exchange; import fr.keemto.core.Account; import fr.keemto.core.AccountKey; import fr.keemto.core.User; import org.junit.Before; import org.junit.Test; import java.util.List; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.mock; public class ExchangeAccountFactoryTest { private ExchangeAccountRepository factory; @Before public void setUp() throws Exception { MailRepository mailRepository = mock(MailRepository.class); factory = new ExchangeAccountRepository(mailRepository, mock(List.class)); } @Test public void shouldCreateAnAccountUsingUserEmail() throws Exception { User user = new User("stnevex", "Ben", "G", "stnevex@gmail.com"); List<Account> accounts = factory.getAccounts(user); assertThat(accounts.size(), is(1)); Account account = accounts.get(0); AccountKey key = account.getKey(); assertThat(key.getProviderUserId(), equalTo("stnevex@gmail.com")); assertThat(key.getUser(), equalTo(user)); } @Test public void shouldCreateAccountFromAccountKey() throws Exception { User user = new User("stnevex", "Ben", "G", "stnevex@gmail.com"); AccountKey key = new AccountKey("exchange", user.getEmail(), user); Account account = factory.getAccount(key); assertThat(account, notNullValue()); assertThat(account.getKey(), equalTo(key)); } @Test public void shouldSupportExchangeProvider() throws Exception { assertThat(factory.supports("test"), is(false)); assertThat(factory.supports("exchange"), is(true)); assertThat(factory.supports("exchange-corporate"), is(true)); } }