Skip to content

Commit 65c7e5a

Browse files
committed
Update for business 4.0
1 parent e796f4b commit 65c7e5a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1107
-316
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ cache:
1212

1313
install:
1414
- echo "<settings><servers><server><id>bintray</id><username>\${env.BINTRAY_USER}</username><password>\${env.BINTRAY_KEY}</password></server></servers></settings>" > ~/.m2/settings.xml
15-
- if [[ $TRAVIS_PULL_REQUEST = false ]] && [[ $TRAVIS_BRANCH = master ]] || [[ $TRAVIS_TAG = v* ]]; then GOAL=deploy; else GOAL=install; fi
15+
- if [[ $TRAVIS_PULL_REQUEST = false ]] && [[ $TRAVIS_BRANCH = master || $TRAVIS_BRANCH = dev-* ]] || [[ $TRAVIS_TAG = v* ]]; then GOAL=deploy; else GOAL=install; fi
1616
- if [[ $TRAVIS_TAG = v* ]]; then ADDITIONAL_PROFILES=release; mvn -q -U org.seedstack:seedstack-maven-plugin:release; else ADDITIONAL_PROFILES=snapshots; fi
1717

18-
script: mvn -q -U -T 2 -Pbuild-number,compatibility,bintray,javadoc,$ADDITIONAL_PROFILES $GOAL jacoco:report
18+
script: mvn -q -U -Pbuild-number,compatibility,bintray,quality, javadoc,$ADDITIONAL_PROFILES $GOAL jacoco:report
1919

2020
after_success: mvn -q coveralls:report -DrepoToken=$COVERALLS_TOKEN

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>org.seedstack.addons.mongodb</groupId>
1616
<artifactId>mongodb</artifactId>
17-
<version>2.0.0-SNAPSHOT</version>
17+
<version>3.0.0-SNAPSHOT</version>
1818
</parent>
1919

2020
<artifactId>mongodb-core</artifactId>

core/src/main/java/org/seedstack/mongodb/internal/AsyncMongoDbManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import org.bson.codecs.configuration.CodecRegistry;
2222
import org.seedstack.coffig.BuilderSupplier;
2323
import org.seedstack.coffig.Coffig;
24-
import org.seedstack.coffig.util.Utils;
2524
import org.seedstack.mongodb.MongoDbConfig;
25+
import org.seedstack.shed.reflect.Classes;
2626

2727
import java.util.List;
2828
import java.util.Optional;
@@ -63,7 +63,7 @@ private MongoClientSettings buildMongoClientSettings(MongoDbConfig.ClientConfig
6363
// Apply global settings
6464
Optional.ofNullable(allSettings.readPreference).ifPresent(settingsBuilder::readPreference);
6565
Optional.ofNullable(allSettings.writeConcern).ifPresent(settingsBuilder::writeConcern);
66-
Optional.ofNullable(allSettings.codecRegistry).map(Utils::instantiateDefault).ifPresent(settingsBuilder::codecRegistry);
66+
Optional.ofNullable(allSettings.codecRegistry).map(Classes::instantiateDefault).ifPresent(settingsBuilder::codecRegistry);
6767

6868
// Apply sub-settings
6969
settingsBuilder.clusterSettings(allSettings.cluster.get().build());

morphia/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>org.seedstack.addons.mongodb</groupId>
1616
<artifactId>mongodb</artifactId>
17-
<version>2.0.0-SNAPSHOT</version>
17+
<version>3.0.0-SNAPSHOT</version>
1818
</parent>
1919

2020
<artifactId>mongodb-morphia</artifactId>

morphia/src/it/java/org/seedstack/mongodb/morphia/MorphiaIT.java

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,114 @@
88
package org.seedstack.mongodb.morphia;
99

1010
import com.google.inject.Inject;
11+
import com.google.inject.Injector;
12+
import com.google.inject.ProvisionException;
13+
import com.google.inject.TypeLiteral;
14+
import com.google.inject.util.Types;
1115
import org.assertj.core.api.Assertions;
1216
import org.junit.Test;
1317
import org.mongodb.morphia.Datastore;
1418
import org.mongodb.morphia.Key;
19+
import org.seedstack.business.domain.Repository;
20+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy1;
21+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy2;
22+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy3;
23+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy4;
24+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy5;
25+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy6;
1526
import org.seedstack.mongodb.morphia.fixtures.user.Address;
1627
import org.seedstack.mongodb.morphia.fixtures.user.User;
28+
import org.seedstack.mongodb.morphia.internal.MorphiaErrorCode;
29+
import org.seedstack.seed.SeedException;
1730
import org.seedstack.seed.it.AbstractSeedIT;
1831

1932
import javax.validation.ConstraintViolationException;
2033

34+
import static org.assertj.core.api.Assertions.assertThat;
2135
import static org.assertj.core.api.Fail.fail;
2236

2337
public class MorphiaIT extends AbstractSeedIT {
2438
@Inject
2539
@MorphiaDatastore(clientName = "client1", dbName = "db")
2640
private Datastore datastore;
41+
@Inject
42+
private Injector injector;
2743

2844
@Test
29-
public void datastore_test() {
45+
public void datastoreAccess() {
3046
User user = new User(1L, "Gerard", "menvuça", new Address("France", "78300", "Poissy", "avenue de l'europe", 1));
3147
Key<User> keyUser = datastore.save(user);
3248
Assertions.assertThat(keyUser).isNotNull();
3349
}
3450

3551
@Test(expected = ConstraintViolationException.class)
36-
public void validation_is_working() {
52+
public void validationIsWorking() {
3753
User user = new User(1L, null, "menvuça", new Address("France", "78300", "Poissy", "avenue de l'europe", 1));
3854
datastore.save(user);
3955
fail("should not have saved");
4056
}
57+
58+
@Test
59+
public void repositoryInjectionTestNoClientForAggregate() {
60+
try {
61+
injector.getInstance(getMorphiaRepositoryOf(Dummy1.class));
62+
} catch (ProvisionException e) {
63+
assertThat(e.getCause().getMessage())
64+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.CLIENT_NAME_NOT_CONFIGURED).getMessage());
65+
}
66+
}
67+
68+
private com.google.inject.Key<?> getMorphiaRepositoryOf(Class entity) {
69+
return com.google.inject.Key.get(TypeLiteral.get(Types.newParameterizedType(Repository.class, entity, Long.class)), Morphia.class);
70+
}
71+
72+
@Test
73+
public void repositoryInjectionTestNoDbNameForAggregate() {
74+
try {
75+
injector.getInstance(getMorphiaRepositoryOf(Dummy2.class));
76+
} catch (ProvisionException e) {
77+
assertThat(e.getCause().getMessage())
78+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
79+
}
80+
}
81+
82+
@Test
83+
public void repositoryInjectionTestNoMongoDbClient() {
84+
try {
85+
injector.getInstance(getMorphiaRepositoryOf(Dummy3.class));
86+
} catch (ProvisionException e) {
87+
assertThat(e.getCause().getMessage())
88+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_CLIENT).getMessage());
89+
}
90+
}
91+
92+
@Test
93+
public void repositoryInjectionTestNoMongoDbDatabase() {
94+
try {
95+
injector.getInstance(getMorphiaRepositoryOf(Dummy4.class));
96+
} catch (ProvisionException e) {
97+
assertThat(e.getCause().getMessage())
98+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
99+
}
100+
}
101+
102+
@Test
103+
public void repositoryInjectionTestNoMongodbForAggregate() {
104+
try {
105+
injector.getInstance(getMorphiaRepositoryOf(Dummy5.class));
106+
} catch (ProvisionException e) {
107+
assertThat(e.getCause().getMessage())
108+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.PERSISTED_CLASS_NOT_CONFIGURED).getMessage());
109+
}
110+
}
111+
112+
@Test
113+
public void repositoryInjectionAsyncClient() {
114+
try {
115+
injector.getInstance(getMorphiaRepositoryOf(Dummy6.class));
116+
} catch (ProvisionException e) {
117+
assertThat(e.getCause().getMessage())
118+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.ASYNC_CLIENT_NOT_SUPPORTED).getMessage());
119+
}
120+
}
41121
}

morphia/src/it/java/org/seedstack/mongodb/morphia/MorphiaRepositoryIT.java

Lines changed: 44 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -8,182 +8,87 @@
88
package org.seedstack.mongodb.morphia;
99

1010
import com.google.inject.Inject;
11-
import com.google.inject.Injector;
12-
import com.google.inject.Key;
13-
import com.google.inject.ProvisionException;
14-
import com.google.inject.TypeLiteral;
15-
import com.google.inject.util.Types;
11+
import org.junit.Before;
1612
import org.junit.Test;
17-
import org.mongodb.morphia.mapping.MappingException;
18-
import org.mongodb.morphia.query.UpdateException;
13+
import org.seedstack.business.domain.AggregateNotFoundException;
1914
import org.seedstack.business.domain.Repository;
20-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy1;
21-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy2;
22-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy3;
23-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy4;
24-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy5;
25-
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy6;
2615
import org.seedstack.mongodb.morphia.fixtures.user.Address;
27-
import org.seedstack.mongodb.morphia.fixtures.user.EntityStringId;
2816
import org.seedstack.mongodb.morphia.fixtures.user.User;
29-
import org.seedstack.mongodb.morphia.internal.MorphiaErrorCode;
30-
import org.seedstack.seed.SeedException;
3117
import org.seedstack.seed.it.AbstractSeedIT;
3218

19+
import java.util.Optional;
20+
3321
import static org.assertj.core.api.Assertions.assertThat;
3422
import static org.assertj.core.api.Assertions.fail;
3523

3624
public class MorphiaRepositoryIT extends AbstractSeedIT {
37-
3825
@Inject
3926
@Morphia
4027
private Repository<User, Long> userRepository;
4128

42-
@Inject
43-
@Morphia
44-
private Repository<EntityStringId, String> entityStringIdRepository;
45-
46-
@Inject
47-
private Injector injector;
48-
49-
@Test
50-
public void repository_injection_test_no_client_for_aggregate() {
51-
try {
52-
injector.getInstance(getMorphiaRepositoryOf(Dummy1.class));
53-
} catch (ProvisionException e) {
54-
assertThat(e.getCause().getMessage())
55-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.CLIENT_NAME_NOT_CONFIGURED).getMessage());
56-
}
57-
}
58-
59-
private Key<?> getMorphiaRepositoryOf(Class entity) {
60-
return Key.get(TypeLiteral.get(Types.newParameterizedType(Repository.class, entity, Long.class)), Morphia.class);
61-
}
62-
63-
@Test
64-
public void repository_injection_test_no_dbName_for_aggregate() {
65-
try {
66-
injector.getInstance(getMorphiaRepositoryOf(Dummy2.class));
67-
} catch (ProvisionException e) {
68-
assertThat(e.getCause().getMessage())
69-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
70-
}
71-
}
72-
73-
@Test
74-
public void repository_injection_test_no_mongoDb_client() {
75-
try {
76-
injector.getInstance(getMorphiaRepositoryOf(Dummy3.class));
77-
} catch (ProvisionException e) {
78-
assertThat(e.getCause().getMessage())
79-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_CLIENT).getMessage());
80-
}
81-
}
82-
83-
@Test
84-
public void repository_injection_test_no_mongoDb_database() {
85-
try {
86-
injector.getInstance(getMorphiaRepositoryOf(Dummy4.class));
87-
} catch (ProvisionException e) {
88-
assertThat(e.getCause().getMessage())
89-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
90-
}
91-
}
92-
93-
@Test
94-
public void repository_injection_test_no_mongodb_for_aggregate() {
95-
try {
96-
injector.getInstance(getMorphiaRepositoryOf(Dummy5.class));
97-
} catch (ProvisionException e) {
98-
assertThat(e.getCause().getMessage())
99-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.PERSISTED_CLASS_NOT_CONFIGURED).getMessage());
100-
}
29+
@Before
30+
public void setUp() throws Exception {
31+
userRepository.clear();
10132
}
10233

10334
@Test
104-
public void repository_injection_async_client() {
105-
try {
106-
injector.getInstance(getMorphiaRepositoryOf(Dummy6.class));
107-
} catch (ProvisionException e) {
108-
assertThat(e.getCause().getMessage())
109-
.isEqualTo(SeedException.createNew(MorphiaErrorCode.ASYNC_CLIENT_NOT_SUPPORTED).getMessage());
110-
}
35+
public void addAndGet() throws Exception {
36+
User user1 = createUser(1L, "someFirstName", "someLastName");
37+
userRepository.add(user1);
38+
Optional<User> loaded = userRepository.get(1L);
39+
assertThat(loaded).isPresent();
40+
assertThat(loaded.get().getName()).isEqualTo("someFirstName");
41+
assertThat(loaded.get().getLastname()).isEqualTo("someLastName");
11142
}
11243

113-
11444
@Test
115-
public void mongodb_repository_test() {
116-
assertThat(userRepository).isNotNull();
117-
User user1 = getUser(1L, "N°", "1");
118-
userRepository.persist(user1);
119-
User user2 = userRepository.load(user1.getEntityId());
120-
assertThat(user1.getId()).isEqualTo(user2.getId());
121-
assertThat(user1.getEntityId()).isEqualTo(user2.getEntityId());
122-
userRepository.delete(user1);
123-
User user3 = userRepository.load(user1.getEntityId());
124-
assertThat(user3).isEqualTo(null);
125-
User user5 = getUser(2L, "N°", "2");
126-
userRepository.delete(user5);
127-
userRepository.persist(user5);
128-
User user6 = userRepository.load(user5.getEntityId());
129-
assertThat(user6.getId()).isEqualTo(user5.getId());
130-
userRepository.delete(user5);
131-
user6 = userRepository.load(user5.getEntityId());
132-
assertThat(user6).isEqualTo(null);
133-
userRepository.persist(user5);
134-
assertThat(userRepository.load(2L)).isNotEqualTo(null);
135-
}
136-
137-
@Test(expected = MappingException.class)
138-
public void mongodb_repository_save_without_id() {
139-
EntityStringId saved = entityStringIdRepository.save(new EntityStringId(null));
140-
fail("should not have saved");
141-
}
142-
143-
@Test(expected = UpdateException.class)
144-
public void mongodb_repository_save_with_inexistent_id() {
145-
userRepository.save(getUser(100L, "Robert", "SMITH"));
146-
fail("should not have saved");
45+
public void addRemoveAndGet() throws Exception {
46+
User user1 = createUser(1L, "someFirstName", "someLastName");
47+
userRepository.add(user1);
48+
assertThat(userRepository.get(1L)).isPresent();
49+
userRepository.remove(user1);
50+
assertThat(userRepository.get(1L)).isNotPresent();
14751
}
14852

14953
@Test
150-
public void mongodb_repository_save() {
151-
userRepository.persist(getUser(200L, "Robert", "SMITH"));
152-
assertThat(userRepository.save(getUser(200L, "Jane", "SMITH")).getEntityId()).isEqualTo(200L);
54+
public void update() {
55+
userRepository.add(createUser(200L, "Robert", "SMITH"));
56+
userRepository.update(createUser(200L, "Jane", "SMITH"));
57+
assertThat(userRepository.get(200L).get().getName()).isEqualTo("Jane");
15358
}
15459

155-
@Test
156-
public void mongodb_repository_persist_load() {
157-
userRepository.persist(getUser(300L, "Robert", "SMITH"));
158-
assertThat(userRepository.load(300L).getEntityId()).isEqualTo(300L);
60+
@Test(expected = AggregateNotFoundException.class)
61+
public void updateNonExistent() {
62+
userRepository.update(createUser(100L, "Robert", "SMITH"));
63+
fail("should not have updated");
15964
}
16065

16166
@Test
162-
public void mongodb_repository_clear() {
163-
userRepository.persist(getUser(400L, "Robert", "SMITH"));
164-
userRepository.persist(getUser(401L, "Jayne", "SMITH"));
165-
assertThat(userRepository.load(400L).getEntityId()).isEqualTo(400L);
166-
assertThat(userRepository.load(401L).getEntityId()).isEqualTo(401L);
67+
public void clear() {
68+
userRepository.add(createUser(400L, "Robert", "SMITH"));
69+
userRepository.add(createUser(401L, "Jayne", "SMITH"));
70+
assertThat(userRepository.get(400L)).isPresent();
71+
assertThat(userRepository.get(401L)).isPresent();
16772
userRepository.clear();
168-
assertThat(userRepository.load(400L)).isNull();
169-
assertThat(userRepository.load(401L)).isNull();
73+
assertThat(userRepository.get(400L)).isNotPresent();
74+
assertThat(userRepository.get(401L)).isNotPresent();
17075
}
17176

17277
@Test
173-
public void mongodb_repository_exists() {
174-
userRepository.persist(getUser(300L, "Robert", "SMITH"));
175-
assertThat(userRepository.exists(300L)).isTrue();
176-
assertThat(userRepository.exists(3010L)).isFalse();
78+
public void contains() {
79+
userRepository.add(createUser(300L, "Robert", "SMITH"));
80+
assertThat(userRepository.contains(300L)).isTrue();
81+
assertThat(userRepository.contains(3010L)).isFalse();
17782
}
17883

17984
@Test
180-
public void mongodb_repository_count() {
181-
userRepository.persist(getUser(300L, "Robert", "SMITH"));
182-
userRepository.persist(getUser(301L, "Roberta", "SMITH"));
183-
assertThat(userRepository.count()).isEqualTo(2);
85+
public void size() {
86+
userRepository.add(createUser(300L, "Robert", "SMITH"));
87+
userRepository.add(createUser(301L, "Roberta", "SMITH"));
88+
assertThat(userRepository.size()).isEqualTo(2);
18489
}
18590

186-
public User getUser(long id, String firstname, String lastName) {
91+
private User createUser(long id, String firstname, String lastName) {
18792
return new User(id, firstname, lastName, new Address("France", "75001", "Paris", "Champ Elysee avenue", 1));
18893
}
18994
}

0 commit comments

Comments
 (0)