### Question:
TenderPriceExcelController extends ExcelChartOCDSController { @ApiOperation(value = "Exports *Procurement method* dashboard in Excel format.") @RequestMapping(value = "/api/ocds/procurementMethodExcelChart", method = {RequestMethod.GET, RequestMethod.POST}) public void procurementMethodExcelChart(@ModelAttribute @Valid final LangYearFilterPagingRequest filter, final HttpServletResponse response) throws IOException { final String chartTitle = translationService.getValue(filter.getLanguage(), "charts:procurementMethod:title"); final List<Document> tenderPriceByBidSelection = tenderPriceByTypeYearController.tenderPriceByProcurementMethod(filter); final List<?> categories = excelChartHelper.getCategoriesFromDBObject( TenderPriceByTypeYearController.Keys.PROCUREMENT_METHOD, tenderPriceByBidSelection); final List<List<? extends Number>> values = new ArrayList<>(); final List<Number> totalTenderAmount = excelChartHelper.getValuesFromDBObject(tenderPriceByBidSelection, categories, TenderPriceByTypeYearController.Keys.PROCUREMENT_METHOD, TenderPriceByTypeYearController.Keys.TOTAL_TENDER_AMOUNT); if (!totalTenderAmount.isEmpty()) { values.add(totalTenderAmount); } final List<String> seriesTitle; if (!values.isEmpty()) { seriesTitle = Arrays.asList( translationService.getValue(filter.getLanguage(), "charts:procurementMethod:xAxisName") ); } else { seriesTitle = new ArrayList<>(); } response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=" + chartTitle + ".xlsx"); response.getOutputStream().write( excelChartGenerator.getExcelChart( ChartType.barcol, chartTitle, seriesTitle, categories, values)); }  @ApiOperation(value = "Exports *Procurement method* dashboard in Excel format.") @RequestMapping(value = "/api/ocds/procurementMethodExcelChart", method = {RequestMethod.GET, RequestMethod.POST}) void procurementMethodExcelChart(@ModelAttribute @Valid final LangYearFilterPagingRequest filter,
                                            final HttpServletResponse response);  }### Answer:
@Test public void procurementMethodExcelChart() throws Exception { LangYearFilterPagingRequest filter = getLangYearFilterMockRequest(); tenderPriceExcelController.procurementMethodExcelChart( filter, mockHttpServletResponse); final byte[] responseOutput = mockHttpServletResponse.getContentAsByteArray(); final Workbook workbook = new XSSFWorkbook(new ByteArrayInputStream(responseOutput)); Assert.assertNotNull(workbook); final Sheet sheet = workbook.getSheet(ChartType.barcol.toString()); Assert.assertNotNull("check chart type, sheet name should be the same as the type", sheet); final XSSFDrawing drawing = (XSSFDrawing) sheet.getDrawingPatriarch(); final List<XSSFChart> charts = drawing.getCharts(); Assert.assertEquals("number of charts", 1, charts.size()); final XSSFChart chart = charts.get(0); Assert.assertEquals("chart title", translationService.getValue(filter.getLanguage(),"charts:procurementMethod:title"), chart.getTitle().getString()); final List<? extends XSSFChartAxis> axis = chart.getAxis(); Assert.assertEquals("number of axis", 2, axis.size()); final CTChart ctChart = chart.getCTChart(); Assert.assertEquals("Check if we have 1 bar chart", 1, ctChart.getPlotArea().getBarChartArray().length); }