@Test
public void when_seeds_return_a_non_matching_universe__a_node_mismatch_universe_event_should_be_emitted() {

	RadixNode node = mock(RadixNode.class);
	Observable<RadixNode> seeds = Observable.just(node);
	RadixUniverseConfig universe = mock(RadixUniverseConfig.class);
	RadixUniverseConfig badUniverse = mock(RadixUniverseConfig.class);
	ReplaySubject<RadixNodeAction> actions = ReplaySubject.create();
	Observable<RadixNetworkState> networkState = Observable.just(mock(RadixNetworkState.class));
	DiscoverNodesEpic discoverNodesEpic = new DiscoverNodesEpic(seeds, universe);
	Observable<RadixNodeAction> output = discoverNodesEpic.epic(actions, networkState);
	TestObserver<RadixNodeAction> testObserver = TestObserver.create();
	output.subscribe(testObserver);
	actions.onNext(DiscoverMoreNodesAction.instance());
	testObserver.awaitCount(1);
	testObserver.assertValueAt(0, a -> a instanceof GetUniverseRequestAction);
	actions.onNext(GetUniverseResponseAction.of(node, badUniverse));
	testObserver.awaitCount(2);
	testObserver.assertValueAt(1, a -> a instanceof NodeUniverseMismatch);
}