Added a new constructor that accepts a Throwable cause and set's exception message and cause
Implemented 6 new facade methods for adding and removing properties from all assays and all samples in given experiments or in all the experiments.
Removed static delegation used to just create an exception.
Resolved too many IntelliJ warnings concerning javadocs and @NonNull being applied to overridden @Nullable params.
Class suffers of some code duplication and symptoms of god class that I didn't approach because there is no coverage at all yet.
Added 6 new REST methods for adding and removing properties from all assays and all samples in given experiments or in all the experiments.
Class still needs some cleanup, e.g. most methods have parameters like HttpServletRequest and HttpServletResponse that they don't use.
Removed unused method parameters (almost all methods had some, e.g. version, HttpServletResponse).
Removed {v} parametrization in the URL, now v1 is just a static URL String component.
Removed unused "extends AtlasViewController"
Renamed some wrongly named tests in atlas-web (e.g. TestBlockReader to BlockReaderTest)
Added junit test parametric inclusion and defined two profiles one junit profile (default) that includes **/*Test.java and an acceptance profile that includes **/*TestExternal.java, this will allow execution of integration and acceptance tests as a separate task in the CI build lifecycle. Added hamcrest-all definition and dependency. Added mockito definition. Added restassured definition. Replaced junit 4.9 dependency with junit-dep 4.10 dependency (this solves hamcrest library conflicts so now we can use every hamcrest matcher). Added easymock definition.
added json-path, json-path-assert and restassured dependencies
Created some new acceptance tests for curators API using the very neat restassured API. Also introduced JsonPath to implement complex xpath like assertions on curator services responses. This is only the start, all the existing REST APIs and related use cases will have to be explored and covered. This tests will have to be automated in the build lifecycle using an ad hoc maven profile that has been already defined (mvn test -P acceptance)
Increased coverage. Also experimented more complex JsonPath expressions.
Extended acceptance coverage to all the new REST services that do bulk operations on all assays, all samples, all experiments.
Restored the "extends AtlasViewController" statement. BEcause AtlasViewController is actually implementing (via Spring MVC Controller framework) ErrorHandling, mapping some Exception types to an HTTP StatusCode NOT_FOUND.
Added mockito dependency in the pom.xml and moved TestData class into a gxa package
Just some automated refactoring because a dependency changed its classpath
Unit test for putAllAssaysProperties
added dependencies for PowerMock and PowerMockito. Required because there are final classes to be mocked and that requires bytecode manipulation that PowerMock feature can add to Mockito.
Unit Coverage for ApiPropertyTest
Removed the final keyword on the template attribute because otherwise it was impossible to unit test any of the DAOs. Alternative solutions would have been possible but unfortunately too expensive in terms of refactoring for this first iteration.
Added getByProperties method that returns experiments having at least one of the specified property values. And test covered.
Added interface method getName and getValue that finally remove the need for clients to go across all internal class components to get name and value.
Added equality and hashCode implementation for OntologyTerm and added new removeTerm method to AssayProperty that doesn't require clients to access internal object structure.