@@ -0,0 +1,2547 @@
+/*%0A * Copyright 2019, TeamDev. All rights reserved.%0A *%0A * Redistribution and use in source and/or binary forms, with or without%0A * modification, must retain the above copyright notice and the following%0A * disclaimer.%0A *%0A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS%0A * %22AS IS%22 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT%0A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR%0A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT%0A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,%0A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT%0A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,%0A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY%0A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT%0A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE%0A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.%0A */%0A%0Apackage io.spine.server.aggregate;%0A%0Aimport com.google.common.truth.OptionalSubject;%0Aimport io.spine.server.aggregate.given.part.TaskRepository;%0Aimport io.spine.server.aggregate.given.part.TaskRoot;%0Aimport io.spine.test.aggregate.task.AggTask;%0Aimport org.junit.jupiter.api.BeforeEach;%0Aimport org.junit.jupiter.api.DisplayName;%0Aimport org.junit.jupiter.api.Test;%0A%0Aimport java.util.Optional;%0A%0Aimport static com.google.common.truth.Truth8.assertThat;%0A%0A@DisplayName(%22In memory AggregateRootDirectory should%22)%0Aclass InMemoryRootDirectoryTest %7B%0A%0A    private AggregateRootDirectory directory;%0A    private AggregatePartRepository%3C?, ?, ?%3E repository;%0A%0A    @BeforeEach%0A    void setUp() %7B%0A        directory = new InMemoryRootDirectory();%0A        repository = new TaskRepository();%0A    %7D%0A%0A    @Test%0A    @DisplayName(%22find a registered repository%22)%0A    void findRepository() %7B%0A        directory.register(repository);%0A        Optional%3C? extends AggregatePartRepository%3C?, ?, ?%3E%3E found =%0A                directory.findPart(TaskRoot.class, AggTask.class);%0A        OptionalSubject assertRepository = assertThat(found);%0A        assertRepository.isPresent();%0A        assertRepository.hasValue(repository);%0A    %7D%0A%0A    @Test%0A    @DisplayName(%22not find a non-registered repository%22)%0A    void notFindRepository() %7B%0A        Optional%3C? extends AggregatePartRepository%3C?, ?, ?%3E%3E found =%0A                directory.findPart(TaskRoot.class, AggTask.class);%0A        OptionalSubject assertRepository = assertThat(found);%0A        assertRepository.isEmpty();%0A    %7D%0A%7D%0A

Add in-mem root directory test