/
MockProducer.java
92 lines (78 loc) · 3.67 KB
/
MockProducer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
* Copyright (c) 2017 Otávio Santana and others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Apache License v2.0 is available at http://www.opensource.org/licenses/apache2.0.php.
*
* You may elect to redistribute this code under either of these licenses.
*
* Contributors:
*
* Otavio Santana
*/
package org.eclipse.jnosql.artemis;
import jakarta.nosql.document.Document;
import jakarta.nosql.document.DocumentCollectionManager;
import jakarta.nosql.document.DocumentCollectionManagerAsync;
import jakarta.nosql.document.DocumentEntity;
import jakarta.nosql.document.DocumentQuery;
import jakarta.nosql.mapping.Database;
import jakarta.nosql.mapping.DatabaseType;
import jakarta.nosql.mapping.document.DocumentTemplate;
import jakarta.nosql.mapping.document.DocumentTemplateAsync;
import org.eclipse.jnosql.artemis.model.Person;
import org.mockito.Mockito;
import javax.enterprise.inject.Produces;
import java.util.Optional;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class MockProducer {
@Produces
public DocumentCollectionManager getDocumentCollectionManager() {
DocumentEntity entity = DocumentEntity.of("Person");
entity.add(Document.of("name", "Default"));
entity.add(Document.of("age", 10));
DocumentCollectionManager manager = mock(DocumentCollectionManager.class);
when(manager.insert(Mockito.any(DocumentEntity.class))).thenReturn(entity);
return manager;
}
@Produces
@Database(value = DatabaseType.DOCUMENT, provider = "documentRepositoryMock")
public DocumentCollectionManager getDocumentCollectionManagerMock() {
DocumentEntity entity = DocumentEntity.of("Person");
entity.add(Document.of("name", "documentRepositoryMock"));
entity.add(Document.of("age", 10));
DocumentCollectionManager manager = mock(DocumentCollectionManager.class);
when(manager.insert(Mockito.any(DocumentEntity.class))).thenReturn(entity);
when(manager.singleResult(Mockito.any(DocumentQuery.class))).thenReturn(Optional.empty());
return manager;
}
@Produces
@Database(value = DatabaseType.DOCUMENT, provider = "documentRepositoryMock")
public DocumentTemplate getDocumentRepository() {
DocumentTemplate documentTemplate = mock(DocumentTemplate.class);
when(documentTemplate.insert(Mockito.any(Person.class))).thenReturn(Person.builder()
.withName("documentRepositoryMock").build());
when(documentTemplate.singleResult(any(DocumentQuery.class))).thenReturn(Optional.empty());
when(documentTemplate.find(eq(Person.class), Mockito.any())).thenReturn(Optional.empty());
return documentTemplate;
}
@Produces
public DocumentCollectionManagerAsync getDocumentCollectionManagerAsync() {
return Mockito.mock(DocumentCollectionManagerAsync.class);
}
@Produces
@Database(value = DatabaseType.DOCUMENT, provider = "documentRepositoryMock")
public DocumentCollectionManagerAsync getDocumentCollectionManagerAsyncMock() {
return Mockito.mock(DocumentCollectionManagerAsync.class);
}
@Produces
@Database(value = DatabaseType.DOCUMENT, provider = "documentRepositoryMock")
public DocumentTemplateAsync getDocumentRepositoryAsync() {
return mock(DocumentTemplateAsync.class);
}
}