/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_properly_add_and_retrieve_global_contexts_in_order() { fixture.addGlobalContext(globalContext1); fixture.addGlobalContext(globalContext2); fixture.addGlobalContext(globalContext3); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext2, globalContext3))); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_properly_remove_and_retrieve_global_contexts() { fixture.addGlobalContext(globalContext1); fixture.addGlobalContext(globalContext2); fixture.addGlobalContext(globalContext3); fixture.removeGlobalContext(globalContext2); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext3))); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_properly_add_and_retrieve_global_contexts() { fixture.addGlobalContext(globalContext1); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1))); }
@Override public void run() { fixture.addGlobalContext(globalContext2); fixture.addLocalContext(localContext2); latch.countDown(); } });
@Override public void run() { fixture.addGlobalContext(globalContext1); fixture.addLocalContext(localContext1); latch.countDown(); } });
@Override public void run() { fixture.addGlobalContext(globalContext3); fixture.addLocalContext(localContext3); latch.countDown(); } });
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_prioritize_global_contexts() { fixture.addLocalContext(localContext1); fixture.addLocalContext(localContext2); fixture.addGlobalContext(globalContext1); fixture.addLocalContext(localContext3); fixture.addGlobalContext(globalContext2); fixture.addGlobalContext(globalContext3); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext2, globalContext3, localContext3, localContext2, localContext1))); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void runWithContexts_must_temporarily_associate_local_contexts() throws InterruptedException { fixture.addGlobalContext(globalContext1); fixture.addGlobalContext(globalContext2); fixture.addGlobalContext(globalContext3); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext2, globalContext3))); final String result = fixture.runWithContexts(Arrays.asList(localContext1, localContext2, localContext3), new Task<String, RuntimeException>() { @Override @Nonnull public String run() { assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext2, globalContext3, localContext3, localContext2, localContext1))); return "result"; } }); assertThat(fixture.getContexts(), is(Arrays.asList(globalContext1, globalContext2, globalContext3))); assertThat(result, is("result")); } }