/** * Copyright (c) 2012, 2015, Credit Suisse (Anatole Tresch), Werner Keil and others by the @author tag. * * 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.javamoney.moneta.internal.convert; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import java.time.Month; import java.time.YearMonth; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import org.javamoney.moneta.internal.convert.IMFRemoteSearchCallable.IMFRemoteSearchResult; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; public class IMFRemoteSearchCallableTest { private static final ExecutorService SERVICE = Executors.newSingleThreadExecutor(); @AfterClass public void end() { SERVICE.shutdown(); } @Test(expectedExceptions = NullPointerException.class) public void shouldReturnErrorWhenIMFHistoricalTypeIsNull() { new IMFRemoteSearchCallable(null, YearMonth.of(2015, Month.MAY)); } @Test(expectedExceptions = NullPointerException.class) public void shouldReturnErrorWhenYearMonthIsNull() { new IMFRemoteSearchCallable(IMFHistoricalType.Currency_SDR, null); } @Test public void shouldReturnIMFCurrencySDR() throws InterruptedException, ExecutionException { IMFHistoricalType type = IMFHistoricalType.Currency_SDR; IMFRemoteSearchCallable task = new IMFRemoteSearchCallable(type, YearMonth.of(2015, Month.MAY)); Future<IMFRemoteSearchResult> resultFuture = SERVICE.submit(task); IMFRemoteSearchResult result = resultFuture.get(); assertNotNull(result); assertEquals(result.getType(), type); assertNotNull(result.getStream()); } @Test public void shouldReturnIMFSDRCurrency() throws InterruptedException, ExecutionException { IMFHistoricalType type = IMFHistoricalType.SDR_Currency; IMFRemoteSearchCallable task = new IMFRemoteSearchCallable(type, YearMonth.of(2015, Month.MAY)); Future<IMFRemoteSearchResult> resultFuture = SERVICE.submit(task); IMFRemoteSearchResult result = resultFuture.get(); assertNotNull(result); assertEquals(result.getType(), type); assertNotNull(result.getStream()); } }