Thanks for the suggestion, Claude! I agree with Stian, do a PR with how the test suite would change, so then we are discussing about more concrete things.
On Mon, Jan 30, 2017 at 11:20 AM, Stian Soiland-Reyes <st...@apache.org> wrote: > On Mon, 30 Jan 2017 09:08:27 +1100, Peter Ansell <ansell.pe...@gmail.com> > wrote: > > Hi Claude, > > Abstract test classes are working well for Commons RDF so far. Others > > may benefit from your solution, so feel free to suggest the approach > > to others who may be interested in exploring it. > > I would not dismiss Claude's suggestion out of hand. Apache Commons is > for anyone who wants to participate! :-) > > Claude - if you would like to have a go in a branch at what Commons RDF > tests look like using contract testing, then feel free! > > >> https://www.linkedin.com/pulse/contract-testing-why- > abstract-tests-enough-claude-warren-jr > > I liked this blog article which explains the problem. We in a way > already have this problem twice in Commons RDF tests because we have the > Triple/Quad duality (TripleLike) and Graph/Dataset duality (GraphLike) > as well as the multiple implementations of the commons-rdf-api > interfaces. > > So you will notice some of those tests have considerable duplication > with subtle differences, e.g. along the lines of: > > > graph.add(triple); > assertTrue(graph.contains(triple) > assertTrue(graph.contains(triple.getSubject(), > triple.getPredicate(), triple.getObject()); > > vs > > dataset.add(quad); > assertTrue(dataset.contains(quad)); > assertTrue(dataset.contains(quad.getGraphName(), > quad.getSubject(), quad.getPredicate(), quad.getObject()); > > This could in theory be harmonized so that there's a single abstract > test class with an abstract method to make the triple/quad - and then > extensions for Triple and Quad that adds the last decomposition > assertion. > > But as we already use abstract classes to run the tests per RDF > implementation, and so I thought it would get messy to try to reorganize > it. > > > Another thing is that now the tests are munged together > into mainly AbstractRDFTest (which must create an RDF factory instance, > that then can create the other things) - otherwise you will have to > make many SomethingImplTest in each module (and easily forget to > specialize one of the tests in one of the modules) > > With your approach, would you still have to make a such specialization, > or is that automatic? > > > BTW - in your approach, would it work to run the tests out of the box > from an IDE like Eclipse? I think that is quite important so Commons RDF > can be maintainable by many people in Apache Commons. > > > > > -- > Stian Soiland-Reyes > University of Manchester > http://www.esciencelab.org.uk/ > http://orcid.org/0000-0001-9842-9718 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > -- Sergio Fernández Partner Technology Manager Redlink GmbH m: +43 6602747925 e: sergio.fernan...@redlink.co w: http://redlink.co