package com.mopub.common.util;
import android.app.Activity;
import org.junit.Test;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.fest.assertions.api.Assertions.fail;
import static org.mockito.Mockito.mock;
public class NumbersTest {
@Test
public void parseDouble_withNumberValue_shouldReturnDouble() throws Exception {
int anInt = 2;
assertThat(Numbers.parseDouble(anInt)).isEqualTo(anInt);
double aDouble = 2.1;
assertThat(Numbers.parseDouble(aDouble)).isEqualTo(aDouble);
float aFloat = 2.2f;
assertThat(Numbers.parseDouble(aFloat)).isEqualTo(aFloat);
double nan = Double.NaN;
assertThat(Numbers.parseDouble(nan)).isEqualTo(nan);
}
@Test
public void parseDouble_withStringValue_shouldReturnDouble() throws Exception {
assertThat(Numbers.parseDouble("0.01")).isEqualTo(0.01);
assertThat(Numbers.parseDouble("-1015")).isEqualTo(-1015);
}
@Test
public void parseDouble_withInvalidStringValue_shouldThrowClassCastException() throws Exception {
try {
Numbers.parseDouble("dog");
fail("Expected ClassCastException");
} catch (ClassCastException e) {
// pass
}
try {
Numbers.parseDouble("123a");
fail("Expected ClassCastException");
} catch (ClassCastException e) {
// pass
}
}
@Test
public void parseDouble_withInvalidObjectType_shouldThrowClassCastException() throws Exception {
try {
Numbers.parseDouble(mock(Activity.class));
fail("Expected ClassCastException");
} catch (ClassCastException e) {
// pass
}
}
}