@WebMethod @GET @Produces("application/json") @Path("/reports") public Response getReports( @QueryParam("aggregatorId") String aggregatorId, @QueryParam("providerId") String providerId, @QueryParam("productClass") String productClass) throws Exception { // Check basic permissions RSUser user = this.userManager.getCurrentUser(); String effectiveAggregator; if (userManager.isAdmin()) { effectiveAggregator = aggregatorId; } else if (null == aggregatorId || aggregatorId.equals(user.getEmail())) { effectiveAggregator = user.getEmail(); } else { String[] args = {"You are not allowed to retrieve report files for the given parameters"}; throw new RSSException(UNICAExceptionType.NON_ALLOWED_OPERATION, args); } List<RSSReport> files = settlementManager.getSharingReports(effectiveAggregator, providerId, productClass); Response.ResponseBuilder rb = Response.status(Response.Status.OK.getStatusCode()); rb.entity(files); return rb.build(); }
@Test public void getAggregatorsNotAdminTest() throws Exception { Aggregator aggregator = new Aggregator(); aggregator.setAggregatorId("*****@*****.**"); aggregator.setAggregatorName("aggregatorName"); RSUser user = new RSUser(); user.setEmail("*****@*****.**"); when(userManager.isAdmin()).thenReturn(false); when(userManager.getCurrentUser()).thenReturn(user); when(aggregatorManager.getAggregator("*****@*****.**")).thenReturn(aggregator); Response response = toTest.getAggregators(); Assert.assertEquals(200, response.getStatus()); List listResponse = (List) response.getEntity(); Assert.assertEquals(aggregator, listResponse.get(0)); }
@Test(expected = MissingFormatArgumentException.class) public void createAggregatorNotAdminTest() throws Exception { when(userManager.isAdmin()).thenReturn(false); Aggregator aggregator = new Aggregator(); aggregator.setAggregatorId("*****@*****.**"); aggregator.setAggregatorName("aggregatorName"); toTest.createAggregator(aggregator); fail(); }
@Test public void createAggregatorTest() throws Exception { when(userManager.isAdmin()).thenReturn(true); Aggregator aggregator = new Aggregator(); aggregator.setAggregatorId("*****@*****.**"); aggregator.setAggregatorName("aggregatorName"); Response response = toTest.createAggregator(aggregator); Assert.assertEquals(201, response.getStatus()); }
@Test public void getAggregatorsTest() throws Exception { List<Aggregator> aggregators = new LinkedList<>(); Aggregator aggregator = new Aggregator(); aggregator.setAggregatorId("*****@*****.**"); aggregator.setAggregatorName("aggregatorName"); aggregators.add(aggregator); when(userManager.isAdmin()).thenReturn(true); when(aggregatorManager.getAPIAggregators()).thenReturn(aggregators); Response response = toTest.getAggregators(); Assert.assertEquals(200, response.getStatus()); Assert.assertEquals(aggregators, response.getEntity()); }