package de.fd.fh.server.user; import dev.morphia.Datastore; import dev.morphia.Key; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.notNullValue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.then; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; class UserRepositoryTest { @Mock private Datastore datastore; @BeforeEach public void before() { datastore = mock(Datastore.class); } @Test void given_newUser_when_saveUser_should_storeUserInDatabase() { when(datastore.save(any(User.class))) .thenReturn(new Key<>(User.class, "collection", "id")); final User access = new User(UserId.of("userId"), "testName"); final Key result = new UserRepository(datastore).save(access); assertThat("Key is null", result, notNullValue()); then(datastore).should().save(any(User.class)); } }