Skip to content

CircularDependency test

Artyom Lobanov edited this page Jul 11, 2017 · 3 revisions

Check that the algorithms correctly process circular dependencies: fooA calls fooB, fooB calls fooC, fooC calls fooA.

Expected refactorings
Member Move to
ClassB.fooB() ClassA
ClassC.fooC() ClassA
or
Member Move to
ClassA.fooA() ClassB
ClassC.fooC() ClassB
or
Member Move to
ClassA.fooA() ClassC
ClassB.fooB() ClassC
package circularDependency;

public class ClassA {

    static void fooA() {
        ClassB.fooB();
        ClassB.fooB();
        ClassB.fooB();
        ClassB.fooB();
        ClassB.fooB();
        ClassB.fooB();
        ClassB.fooB();
    }
}
package circularDependency;

public class ClassB {

    static void fooB() {
        ClassC.fooC();
        ClassC.fooC();
        ClassC.fooC();
        ClassC.fooC();
        ClassC.fooC();
        ClassC.fooC();
    }
}
package circularDependency;

public class ClassC {

    static void fooC() {
        ClassA.fooA();
        ClassA.fooA();
        ClassA.fooA();
        ClassA.fooA();
        ClassA.fooA();
        ClassA.fooA();
    }
}