| viewProduct(Long, Model, RedirectAttributes) |  | 0% |  | 0% | 13 | 13 | 62 | 62 | 1 | 1 |
| listProducts(String, String, Model) |  | 0% |  | 0% | 6 | 6 | 18 | 18 | 1 | 1 |
| viewSaleProducts(Model) |  | 0% |  | 0% | 2 | 2 | 14 | 14 | 1 | 1 |
| viewPopularProducts(Model) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| viewNewProducts(Model) |  | 0% | | n/a | 1 | 1 | 11 | 11 | 1 | 1 |
| getSaleStats() |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| searchProducts(String) |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| checkStock(Long) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| handleError(Exception, Model) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| lambda$viewSaleProducts$1(Product) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| lambda$checkStock$2(Product) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| lambda$viewProduct$0(Long, Product) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| viewCategory(String, Model) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| ProductController(ProductService) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| static {...} |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |