98 lines
3.5 KiB
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());
|
|
}
|
|
}
|