Skip to content
Snippets Groups Projects
Commit aee61777 authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7837 extand WarehouseRepository

parent f64523ea
No related branches found
No related tags found
1 merge request!14Ozg 7837 mapping name as collection
......@@ -36,6 +36,7 @@ import lombok.ToString;
public class AggregationMapping {
private FormIdentifier formIdentifier;
private String name;
@Singular
private List<FieldMapping> fieldMappings;
......
package de.ozgcloud.aggregation.warehouse;
interface CustomWarehouseRepository {
DocumentEntry saveInCollection(DocumentEntry documentEntry, String collectionName);
void deleteCollection(String collectionName);
}
package de.ozgcloud.aggregation.warehouse;
import org.springframework.data.mongodb.core.MongoTemplate;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
class CustomWarehouseRepositoryImpl implements CustomWarehouseRepository {
private final MongoTemplate mongoTemplate;
@Override
public DocumentEntry saveInCollection(DocumentEntry documentEntry, String collectionName) {
return mongoTemplate.save(documentEntry, collectionName);
}
@Override
public void deleteCollection(String collectionName) {
mongoTemplate.dropCollection(collectionName);
}
}
......@@ -27,6 +27,6 @@ import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface WarehouseRepository extends MongoRepository<DocumentEntry, String> {
public interface WarehouseRepository extends CustomWarehouseRepository, MongoRepository<DocumentEntry, String> {
}
package de.ozgcloud.aggregation.warehouse;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.mongodb.core.MongoTemplate;
import com.thedeanda.lorem.LoremIpsum;
class CustomWarehouseRepositoryImplTest {
@InjectMocks
private CustomWarehouseRepositoryImpl repository;
@Mock
private MongoTemplate mongoTemplate;
@Nested
class TestSaveInCollection {
private final DocumentEntry documentEntry = DocumentEntryTestFactory.create();
private final String collectionName = LoremIpsum.getInstance().getWords(1);
@Test
void testSaveInCollection() {
repository.saveInCollection(documentEntry, collectionName);
verify(mongoTemplate).save(documentEntry, collectionName);
}
@Test
void shouldReturnSavedDocumentEntry() {
var savedDocumentEntry = DocumentEntryTestFactory.create();
when(mongoTemplate.save(documentEntry, collectionName)).thenReturn(savedDocumentEntry);
var returnedDocumentEntry = repository.saveInCollection(documentEntry, collectionName);
assertThat(returnedDocumentEntry).isEqualTo(savedDocumentEntry);
}
}
@Nested
class TestDeleteCollection {
private final String collectionName = LoremIpsum.getInstance().getWords(1);
@Test
void shouldDropCollection() {
repository.deleteCollection(collectionName);
verify(mongoTemplate).dropCollection(collectionName);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment