@Test public void testConstructor_shouldCreateEmptyMessage_whenNotPassedAMessage() throws Exception { //GIVEN //WHEN CyclicDependencyException exception = new CyclicDependencyException(); //THEN assertThat(exception.getMessage(), nullValue()); }
@Test public void testConstructor_shouldCreateCause_whenPassedACause() throws Exception { //GIVEN Throwable cause = new Exception("Foo"); //WHEN CyclicDependencyException exception = new CyclicDependencyException(cause); //THEN assertThat(exception.getMessage(), CoreMatchers.is("java.lang.Exception: Foo")); assertThat(exception.getCause(), CoreMatchers.is(cause)); }
@Test public void testConstructor_shouldCreateMessageAndCause_whenPassedAMessageAndCause() throws Exception { //GIVEN Throwable cause = new Exception(); //WHEN CyclicDependencyException exception = new CyclicDependencyException("Foo", cause); //THEN assertThat(exception.getMessage(), CoreMatchers.is("Foo")); assertThat(exception.getCause(), CoreMatchers.is(cause)); }
@Test public void newCyclicDependencyException_showGenerateOneElementPath_whenCycleContainsOneElement() throws Exception { String expectedErrorMessage = "Class toothpick.data.CyclicFoo creates a cycle:\n" + "\n" + " ================\n" + " || ||\n" + " \\/ ||\n" + " toothpick.data.CyclicFoo ||\n" + " || ||\n" + " ================\n"; //GIVEN List<Class> path = new ArrayList<>(); path.add(CyclicFoo.class); //WHEN CyclicDependencyException exception = new CyclicDependencyException(path, CyclicFoo.class); //THEN assertThat(exception.getMessage(), is(expectedErrorMessage)); }
@Test public void newCyclicDependencyException_showGenerateLastElementPath_whenCycleFinishesPath() throws Exception { String expectedErrorMessage = "Class toothpick.data.CyclicFoo creates a cycle:\n" + "\n" + " ================\n" + " || ||\n" + " \\/ ||\n" + " toothpick.data.CyclicFoo ||\n" + " || ||\n" + " ================\n"; //GIVEN List<Class> path = new ArrayList<>(); path.add(Bar.class); path.add(Foo.class); path.add(BarChild.class); path.add(CyclicFoo.class); //WHEN CyclicDependencyException exception = new CyclicDependencyException(path, CyclicFoo.class); //THEN assertThat(exception.getMessage(), is(expectedErrorMessage)); }
@Test public void newCyclicDependencyException_showGeneratePartialPath_whenCycleStartsInTheMiddle() throws Exception { String expectedErrorMessage = "Class toothpick.data.CyclicFoo creates a cycle:\n" + "\n" + " ================\n" + " || ||\n" + " \\/ ||\n" + " toothpick.data.CyclicFoo ||\n" + " || ||\n" + " toothpick.data.Foo ||\n" + " || ||\n" + " toothpick.data.BarChild ||\n" + " || ||\n" + " ================\n"; //GIVEN List<Class> path = new ArrayList<>(); path.add(Bar.class); path.add(CyclicFoo.class); path.add(Foo.class); path.add(BarChild.class); //WHEN CyclicDependencyException exception = new CyclicDependencyException(path, CyclicFoo.class); //THEN assertThat(exception.getMessage(), is(expectedErrorMessage)); }
@Test public void newCyclicDependencyException_showGenerateWholePath_whenCycleStartsPath() throws Exception { String expectedErrorMessage = "Class toothpick.data.CyclicFoo creates a cycle:\n" + "\n" + " ================\n" + " || ||\n" + " \\/ ||\n" + " toothpick.data.CyclicFoo ||\n" + " || ||\n" + " toothpick.data.Bar ||\n" + " || ||\n" + " toothpick.data.Foo ||\n" + " || ||\n" + " toothpick.data.BarChild ||\n" + " || ||\n" + " ================\n"; //GIVEN List<Class> path = new ArrayList<>(); path.add(CyclicFoo.class); path.add(Bar.class); path.add(Foo.class); path.add(BarChild.class); //WHEN CyclicDependencyException exception = new CyclicDependencyException(path, CyclicFoo.class); //THEN assertThat(exception.getMessage(), is(expectedErrorMessage)); }
@Test public void newCyclicDependencyException_showGenerateWholePath_whenStartCannotBeFound() throws Exception { String expectedErrorMessage = "Class toothpick.data.FooProvider creates a cycle:\n" + "\n" + " ================\n" + " || ||\n" + " \\/ ||\n" + " toothpick.data.CyclicFoo ||\n" + " || ||\n" + " toothpick.data.Bar ||\n" + " || ||\n" + " toothpick.data.Foo ||\n" + " || ||\n" + " toothpick.data.BarChild ||\n" + " || ||\n" + " ================\n"; //GIVEN List<Class> path = new ArrayList<>(); path.add(CyclicFoo.class); path.add(Bar.class); path.add(Foo.class); path.add(BarChild.class); //WHEN CyclicDependencyException exception = new CyclicDependencyException(path, FooProvider.class); //THEN assertThat(exception.getMessage(), is(expectedErrorMessage)); }
@Test public void testConstructor_shouldCreateMessage_whenPassedAMessage() throws Exception { //GIVEN //WHEN CyclicDependencyException exception = new CyclicDependencyException("Foo"); //THEN Assert.assertThat(exception.getMessage(), CoreMatchers.is("Foo")); }