Fix some Robolectric unit tests

This commit is contained in:
serso 2017-07-24 17:03:16 +02:00
parent bd0c3233a3
commit fa9288ada1
4 changed files with 75 additions and 50 deletions

View File

@ -17,6 +17,9 @@ import org.mockito.ArgumentMatcher;
import org.solovyev.android.calculator.calculations.CalculationFailedEvent;
import org.solovyev.android.calculator.calculations.CalculationFinishedEvent;
import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.common.msg.Message;
import java.util.Collections;
public abstract class BaseCalculatorTest {
protected Calculator calculator;
@ -91,7 +94,8 @@ public abstract class BaseCalculatorTest {
@Override
public void describeTo(Description description) {
description.appendText(expected);
description.appendText(new CalculationFinishedEvent(operation, expression, 0, null, expected,
Collections.<Message>emptyList()).toString());
}
};
}

View File

@ -22,36 +22,6 @@
package org.solovyev.android.calculator.history;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Looper;
import com.squareup.otto.Bus;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.solovyev.android.CalculatorTestRunner;
import org.solovyev.android.calculator.BuildConfig;
import org.solovyev.android.calculator.Display;
import org.solovyev.android.calculator.DisplayState;
import org.solovyev.android.calculator.Editor;
import org.solovyev.android.calculator.EditorState;
import org.solovyev.android.calculator.Engine;
import org.solovyev.android.calculator.ErrorReporter;
import org.solovyev.android.calculator.json.Json;
import org.solovyev.android.io.FileSystem;
import java.io.File;
import java.util.List;
import javax.annotation.Nonnull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@ -67,8 +37,39 @@ import static org.mockito.Mockito.when;
import static org.solovyev.android.calculator.Tests.sameThreadExecutor;
import static org.solovyev.android.calculator.jscl.JsclOperation.numeric;
@Config(constants = BuildConfig.class, sdk = CalculatorTestRunner.SUPPORTED_SDK)
@RunWith(RobolectricGradleTestRunner.class)
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Looper;
import com.squareup.otto.Bus;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.solovyev.android.calculator.BuildConfig;
import org.solovyev.android.calculator.Display;
import org.solovyev.android.calculator.DisplayState;
import org.solovyev.android.calculator.Editor;
import org.solovyev.android.calculator.EditorState;
import org.solovyev.android.calculator.Engine;
import org.solovyev.android.calculator.ErrorReporter;
import org.solovyev.android.calculator.json.Json;
import org.solovyev.android.io.FileSystem;
import java.io.File;
import java.util.List;
import javax.annotation.Nonnull;
import dagger.Lazy;
@Config(constants = BuildConfig.class, manifest = Config.NONE)
@RunWith(value = RobolectricTestRunner.class)
public class HistoryTest {
private History history;
@ -77,6 +78,12 @@ public class HistoryTest {
public void setUp() throws Exception {
history = new History();
history.backgroundThread = sameThreadExecutor();
history.filesDir = new Lazy<File>() {
@Override
public File get() {
return new File(".");
}
};
history.application = RuntimeEnvironment.application;
history.bus = mock(Bus.class);
history.errorReporter = mock(ErrorReporter.class);

View File

@ -22,6 +22,20 @@
package org.solovyev.android.calculator.model;
import static org.junit.Assert.fail;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.solovyev.android.calculator.BaseCalculatorTest;
import org.solovyev.android.calculator.BuildConfig;
import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.android.calculator.variables.CppVariable;
import jscl.AngleUnit;
import jscl.JsclMathEngine;
import jscl.MathEngine;
@ -29,15 +43,9 @@ import jscl.NumeralBase;
import jscl.math.Expression;
import jscl.math.function.CustomFunction;
import jscl.text.ParseException;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.solovyev.android.calculator.BaseCalculatorTest;
import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.android.calculator.variables.CppVariable;
import static org.junit.Assert.fail;
@Config(constants = BuildConfig.class, manifest = Config.NONE)
@RunWith(value = RobolectricTestRunner.class)
public class AndroidEngineTest extends BaseCalculatorTest {
@Before
@ -154,7 +162,7 @@ public class AndroidEngineTest extends BaseCalculatorTest {
assertEval("e", "e*0x:ABCDEF/0x:ABCDEF");
assertEval("30 606 154.462", "0x:ABCDEF*e*0x:ABCDEF/0x:ABCDEF");
assertEval("30 606 154.462", "c+0x:ABCDEF*e*0x:ABCDEF/0x:ABCDEF-c+0x:C-0x:C");
assertEval("1 446 257 064 651.832", "28*28 * sin(28) - 0b:1101 + √(28) + exp ( 28) ");
assertEval("1 446 257 064 651.832", "28*28 * sin(28) - 0b:1101 + √(28) + exp (28)");
assertEval("13", "0b:1101");
assertError("0b:π");
@ -163,7 +171,7 @@ public class AndroidEngineTest extends BaseCalculatorTest {
try {
me.setNumeralBase(NumeralBase.bin);
assertEval("101", "10+11");
assertEval("0.101", "10/11");
assertEval("0.1011", "10/11");
me.setNumeralBase(NumeralBase.hex);
assertEval("63 7B", "56CE+CAD");

View File

@ -1,10 +1,19 @@
package org.solovyev.android.calculator.wizard;
import android.os.Build;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.solovyev.android.calculator.wizard.CalculatorWizardStep.choose_mode;
import static org.solovyev.android.calculator.wizard.CalculatorWizardStep.last;
import static org.solovyev.android.calculator.wizard.CalculatorWizardStep.welcome;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.solovyev.android.calculator.BuildConfig;
@ -14,11 +23,8 @@ import org.solovyev.android.wizard.Wizards;
import javax.annotation.Nonnull;
import static org.junit.Assert.*;
import static org.solovyev.android.calculator.wizard.CalculatorWizardStep.*;
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
@RunWith(value = RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, manifest = Config.NONE)
@RunWith(value = RobolectricTestRunner.class)
public class CalculatorWizardTest {
@Nonnull