package dbfit.diff;
import dbfit.util.DiffListener;
import dbfit.util.MatchResult;
import org.junit.Test;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.Mock;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class DiffBaseTest {
@Mock private DiffListener listener1;
@Mock private DiffListener listener2;
@Mock private MatchResult matchResult;
private DiffBase<Object, Object> diffBase;
@Before
public void prepare() {
diffBase = new DiffBase<Object, Object>() {
@Override
protected Class getType() {
return Object.class;
}
@Override
protected DiffBase<Object, Object>.DiffRunner getDiffRunner(MatchResult<Object, Object> request) {
return null;
}
};
diffBase.addListener(listener1);
diffBase.addListener(listener2);
}
@Test
public void shouldNotifyAllRegisteredListener() {
diffBase.notifyListeners(matchResult);
verify(listener1).onEvent(matchResult);
verify(listener2).onEvent(matchResult);
}
@Test
public void shouldNotNotifyUnregisteredListeners() {
diffBase.removeListener(listener1);
diffBase.notifyListeners(matchResult);
verifyZeroInteractions(listener1);
verify(listener2).onEvent(matchResult);
}
}