mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-07-19 21:04:36 +02:00
Add orderCatalog integration tests
This commit is contained in:
parent
7ad2a2c3b1
commit
cda383ca88
|
@ -1,18 +1,25 @@
|
||||||
package catering.orderCatalog;
|
package catering.orderCatalog;
|
||||||
|
|
||||||
|
import catering.order.OrderType;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.salespointframework.quantity.Quantity;
|
||||||
import org.salespointframework.useraccount.Password;
|
import org.salespointframework.useraccount.Password;
|
||||||
import org.salespointframework.useraccount.Role;
|
import org.salespointframework.useraccount.Role;
|
||||||
import org.salespointframework.useraccount.UserAccountManagement;
|
import org.salespointframework.useraccount.UserAccountManagement;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.security.test.context.support.WithMockUser;
|
||||||
import org.springframework.test.web.servlet.MockMvc;
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user;
|
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user;
|
||||||
|
import static org.springframework.test.util.AssertionErrors.assertEquals;
|
||||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
|
@ -28,20 +35,82 @@ public class CatalogControllerIntegrationTests {
|
||||||
@Autowired
|
@Autowired
|
||||||
UserAccountManagement userAccountManagement;
|
UserAccountManagement userAccountManagement;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CustomCatalogEntryRepository catalogEntryRepository;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setUp() {
|
void setUp() {
|
||||||
if (userAccountManagement.findByUsername("anna").isEmpty()) {
|
if (userAccountManagement.findByUsername("andi").isEmpty()) {
|
||||||
userAccountManagement.create("anna",
|
userAccountManagement.create("andi",
|
||||||
Password.UnencryptedPassword.of("12345"), Role.of("CUSTOMER"));
|
Password.UnencryptedPassword.of("12345"), Role.of("CUSTOMER"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CustomCatalogEntry testCatalogEntry = new CustomCatalogEntry(
|
||||||
|
OrderType.RENT_A_COOK,
|
||||||
|
// TODO: Following HashMap has to be changed to <Product, Quantity> after event_planner-use-orderCatalog
|
||||||
|
// is merged
|
||||||
|
new HashMap<String, Quantity>(),
|
||||||
|
3,
|
||||||
|
3000);
|
||||||
|
catalogEntryRepository.save(testCatalogEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void customerViewsCatalog() throws Exception {
|
void testCustomerViewsCatalog() throws Exception {
|
||||||
this.mockMvc.perform(get("/catalog").with(user("anna").roles("CUSTOMER")))
|
this.mockMvc.perform(get("/catalog").with(user("andi").roles("CUSTOMER")))
|
||||||
.andExpect(status().isOk())
|
.andExpect(status().isOk())
|
||||||
.andExpect(view().name("catalog"))
|
.andExpect(view().name("catalog"))
|
||||||
.andDo(print());
|
.andExpect(model().attributeExists("catalogEntries"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testCustomerViewsCatalogEditor() throws Exception {
|
||||||
|
this.mockMvc.perform(get("/catalog_editor").with(user("andi").roles("CUSTOMER")))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(view().name("catalog_editor"))
|
||||||
|
.andExpect(model().attributeExists("formCatalogEntry", "productMap"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithMockUser(username = "admin", roles = "ADMIN")
|
||||||
|
void testAddCatalogEntry() throws Exception {
|
||||||
|
this.mockMvc.perform(post("/catalog_editor/addCatalogEntry")
|
||||||
|
.param("eventType", "MOBILE_BREAKFAST")
|
||||||
|
.param("minimumTimePeriod", "6")
|
||||||
|
.param("totalCost", "5000"))
|
||||||
|
.andExpect(redirectedUrl("/catalog"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@WithMockUser(username = "admin", roles = "ADMIN")
|
||||||
|
void testRemoveCatalogEntry() throws Exception {
|
||||||
|
this.mockMvc.perform(post("/catalog/remove")
|
||||||
|
.param("catalogEntryID", "1"))
|
||||||
|
.andExpect(redirectedUrl("/catalog"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Fix this test
|
||||||
|
@Test
|
||||||
|
@Disabled("The repository's 0th entry is null.")
|
||||||
|
@WithMockUser(username = "admin", roles = "ADMIN")
|
||||||
|
void testAddTime() throws Exception {
|
||||||
|
this.mockMvc.perform(post("/catalog_editor/addTime")
|
||||||
|
.param("minimumTimePeriod", "8")
|
||||||
|
.param("eventType", "EVENT_CATERING"))
|
||||||
|
.andExpect(redirectedUrl("/catalog_editor"));
|
||||||
|
|
||||||
|
assertEquals("Asserting update of minimumTimePeriod.",
|
||||||
|
8,
|
||||||
|
catalogEntryRepository.findById(0L).orElse(null).getMinimumTimePeriod());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled("For some reason the redirect result is null.")
|
||||||
|
@WithMockUser(username = "admin", roles = "ADMIN")
|
||||||
|
void testAddProduct() throws Exception {
|
||||||
|
this.mockMvc.perform(post("/catalog_editor/addProduct")
|
||||||
|
.param("pid", "1")
|
||||||
|
.param("number", "10"))
|
||||||
|
.andExpect(redirectedUrl("/catalog_editor"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue