I know I have cycle and I want to include it in test. #61

Open
pmajkutewicz opened this Issue Oct 30, 2015 · 4 comments

Projects

None yet

2 participants

@pmajkutewicz

Hi

I have 4 packages:

example.a, example.b, example.c, example.d

With cycle between a and c and that is ok.

My test:

assertThat(
classpath()
.noJars()
.including("example.**")
.allow(oneOf("example.a", "example.c"), oneOf("example.a", "example.c"))
, is(violationFree()))

fails with:

java.lang.AssertionError: 
Expected: is "de.schauderhaft.degraph.check.Check$$anon$1"
     but: Configuration{classpath = [snip]
includes = example.**
constraints = no cycles
} yields the following constraint violations: [Package](no cycles):
    example.a -> example.c
    example.c -> example.a

I've also tried adding .withSlicing("module", "example.(*).**") but I'm still getting assertion error.
Is there a way to configure degraph for that kind of situation?

@schauder
Owner

Unfortunatly no, not with the current version.

It always checks for cycles.

I'm currently working on a reworked API for formulating tests, and the new version will

a) make the check for cycles optional
b) will allow to ignore dependencies for the analysis

So in you example you could either not check for cycles at all, or ignore for example the dependency from example.c to example.a

@pmajkutewicz

Oh nice, so second solution will solve my problem :).

Any ETA on new API ? (days, month, months?)

@schauder
Owner

Maybe end of the year, or early next year. I hope.

@pmajkutewicz

OK, good to know. I'll wait.
Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment