opencv/src/test/java/pl/edu/amu/wmi/bookapi/Integration/api/MessageControllerInt.java

98 lines
3.5 KiB
Java

package pl.edu.amu.wmi.bookapi.Integration.api;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.web.servlet.MockMvc;
import pl.edu.amu.wmi.bookapi.fixtures.IntegrationTestUtil;
import pl.edu.amu.wmi.bookapi.fixtures.api.BookControllerRequest;
import pl.edu.amu.wmi.bookapi.fixtures.api.MessageControllerRequests;
import pl.edu.amu.wmi.bookapi.models.MessageDocument;
import pl.edu.amu.wmi.bookapi.models.ThreadDocument;
import static org.junit.Assert.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@SpringBootTest
@AutoConfigureMockMvc
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@EnableAutoConfiguration(exclude = { SecurityAutoConfiguration.class })
public class MessageControllerInt {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MockMvc mvc;
@Autowired
IntegrationTestUtil testUtil;
private MessageControllerRequests messageControllerRequests;
@BeforeEach
void cleanCollections() {
this.messageControllerRequests = new MessageControllerRequests(mvc, new ObjectMapper());
testUtil.cleanCollections();
}
@Test
void should_start_new_thread_if_does_not_exist() throws Exception {
messageControllerRequests.postMessage(
"content",
"id-1",
"id-2"
).andExpect(status().isOk());;
assertEquals(1, mongoTemplate.findAll(ThreadDocument.class).size());
assertEquals(1, mongoTemplate.findAll(MessageDocument.class).size());
}
@Test
void if_thread_exists_it_should_not_create_new() throws Exception {
messageControllerRequests.postMessage(
"content",
"id-1",
"id-2"
).andExpect(status().isOk());
assertEquals(1, mongoTemplate.findAll(ThreadDocument.class).size());
assertEquals(1, mongoTemplate.findAll(MessageDocument.class).size());
messageControllerRequests.postMessage(
"content",
"id-1",
"id-2"
).andExpect(status().isOk());;
assertEquals(1, mongoTemplate.findAll(ThreadDocument.class).size());
assertEquals(2, mongoTemplate.findAll(MessageDocument.class).size());
messageControllerRequests.postMessage(
"content",
"id-1",
"id-5"
).andExpect(status().isOk());
assertEquals(2, mongoTemplate.findAll(ThreadDocument.class).size());
assertEquals(3, mongoTemplate.findAll(MessageDocument.class).size());
}
@Test
void it_should_allow_to_send_a_message() throws Exception {
messageControllerRequests.postMessage(
"content",
"id-1",
"id-5"
).andExpect(status().isOk());
assertEquals(1, mongoTemplate.findAll(ThreadDocument.class).size());
assertEquals(1, mongoTemplate.findAll(MessageDocument.class).size());
}
}