This commit is contained in:
Sergey Solovyev
2012-11-21 11:54:45 +04:00
parent 6cd382e273
commit 60f1bd1e73
12 changed files with 66 additions and 48 deletions

View File

@@ -1,6 +1,7 @@
package org.solovyev.android.calculator;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.external.CalculatorExternalListenersContainer;
import org.solovyev.android.calculator.history.CalculatorHistory;
/**
@@ -17,7 +18,8 @@ public interface CalculatorLocator {
@NotNull CalculatorHistory history,
@NotNull CalculatorLogger logger,
@NotNull CalculatorPreferenceService preferenceService,
@NotNull CalculatorKeyboard keyboard);
@NotNull CalculatorKeyboard keyboard,
@NotNull CalculatorExternalListenersContainer externalListenersContainer);
@NotNull
Calculator getCalculator();
@@ -48,4 +50,7 @@ public interface CalculatorLocator {
@NotNull
CalculatorPreferenceService getPreferenceService();
@NotNull
CalculatorExternalListenersContainer getExternalListenersContainer();
}

View File

@@ -1,6 +1,7 @@
package org.solovyev.android.calculator;
import org.jetbrains.annotations.NotNull;
import org.solovyev.android.calculator.external.CalculatorExternalListenersContainer;
import org.solovyev.android.calculator.history.CalculatorHistory;
/**
@@ -43,6 +44,9 @@ public class CalculatorLocatorImpl implements CalculatorLocator {
@NotNull
private CalculatorPreferenceService calculatorPreferenceService;
@NotNull
private CalculatorExternalListenersContainer calculatorExternalListenersContainer;
public CalculatorLocatorImpl() {
}
@@ -54,7 +58,8 @@ public class CalculatorLocatorImpl implements CalculatorLocator {
@NotNull CalculatorHistory history,
@NotNull CalculatorLogger logger,
@NotNull CalculatorPreferenceService preferenceService,
@NotNull CalculatorKeyboard keyboard) {
@NotNull CalculatorKeyboard keyboard,
@NotNull CalculatorExternalListenersContainer externalListenersContainer) {
this.calculator = calculator;
this.calculatorEngine = engine;
@@ -63,6 +68,7 @@ public class CalculatorLocatorImpl implements CalculatorLocator {
this.calculatorHistory = history;
this.calculatorLogger = logger;
this.calculatorPreferenceService = preferenceService;
this.calculatorExternalListenersContainer = externalListenersContainer;
calculatorEditor = new CalculatorEditorImpl(this.calculator);
calculatorDisplay = new CalculatorDisplayImpl(this.calculator);
@@ -133,4 +139,10 @@ public class CalculatorLocatorImpl implements CalculatorLocator {
public CalculatorPreferenceService getPreferenceService() {
return this.calculatorPreferenceService;
}
@Override
@NotNull
public CalculatorExternalListenersContainer getExternalListenersContainer() {
return calculatorExternalListenersContainer;
}
}

View File

@@ -0,0 +1,10 @@
package org.solovyev.android.calculator.external;
import org.jetbrains.annotations.NotNull;
public interface CalculatorExternalListenersContainer {
void addExternalListener(@NotNull Class<?> externalCalculatorClass);
boolean removeExternalListener(@NotNull Class<?> externalCalculatorClass);
}

View File

@@ -1,6 +1,7 @@
package org.solovyev.android.calculator;
import org.mockito.Mockito;
import org.solovyev.android.calculator.external.CalculatorExternalListenersContainer;
import org.solovyev.android.calculator.history.CalculatorHistory;
/**
@@ -11,7 +12,7 @@ import org.solovyev.android.calculator.history.CalculatorHistory;
public class AbstractCalculatorTest {
protected void setUp() throws Exception {
CalculatorLocatorImpl.getInstance().init(new CalculatorImpl(), CalculatorTestUtils.newCalculatorEngine(), Mockito.mock(CalculatorClipboard.class), Mockito.mock(CalculatorNotifier.class), Mockito.mock(CalculatorHistory.class), new SystemOutCalculatorLogger(), Mockito.mock(CalculatorPreferenceService.class), Mockito.mock(CalculatorKeyboard.class));
CalculatorLocatorImpl.getInstance().init(new CalculatorImpl(), CalculatorTestUtils.newCalculatorEngine(), Mockito.mock(CalculatorClipboard.class), Mockito.mock(CalculatorNotifier.class), Mockito.mock(CalculatorHistory.class), new SystemOutCalculatorLogger(), Mockito.mock(CalculatorPreferenceService.class), Mockito.mock(CalculatorKeyboard.class), Mockito.mock(CalculatorExternalListenersContainer.class));
CalculatorLocatorImpl.getInstance().getEngine().init();
}

View File

@@ -5,6 +5,7 @@ import junit.framework.Assert;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.mockito.Mockito;
import org.solovyev.android.calculator.external.CalculatorExternalListenersContainer;
import org.solovyev.android.calculator.history.CalculatorHistory;
import org.solovyev.android.calculator.jscl.JsclOperation;
@@ -23,7 +24,7 @@ public class CalculatorTestUtils {
public static final int TIMEOUT = 3;
public static void staticSetUp() throws Exception {
CalculatorLocatorImpl.getInstance().init(new CalculatorImpl(), newCalculatorEngine(), Mockito.mock(CalculatorClipboard.class), Mockito.mock(CalculatorNotifier.class), Mockito.mock(CalculatorHistory.class), new SystemOutCalculatorLogger(), Mockito.mock(CalculatorPreferenceService.class), Mockito.mock(CalculatorKeyboard.class));
CalculatorLocatorImpl.getInstance().init(new CalculatorImpl(), newCalculatorEngine(), Mockito.mock(CalculatorClipboard.class), Mockito.mock(CalculatorNotifier.class), Mockito.mock(CalculatorHistory.class), new SystemOutCalculatorLogger(), Mockito.mock(CalculatorPreferenceService.class), Mockito.mock(CalculatorKeyboard.class), Mockito.mock(CalculatorExternalListenersContainer.class));
CalculatorLocatorImpl.getInstance().getEngine().init();
}