/** * Copyright (c) 2016, All Contributors (see CONTRIBUTORS file) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.eventsourcing.queries; import com.eventsourcing.EventStream; import com.eventsourcing.StandardCommand; import com.eventsourcing.StandardEntity; import com.eventsourcing.StandardEvent; import com.eventsourcing.index.SimpleAttribute; import com.eventsourcing.index.SimpleIndex; import com.googlecode.cqengine.query.option.QueryOptions; import lombok.SneakyThrows; import org.testng.annotations.Test; import java.util.Optional; import java.util.UUID; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; public class ModelQueriesTest extends RepositoryUsingTest { public ModelQueriesTest() { super(ModelQueriesTest.class.getPackage()); } public static class TestEvent extends StandardEvent { public final static SimpleIndex<TestEvent, UUID> ID = SimpleIndex.as(StandardEntity::uuid); } public static class TestCommand extends StandardCommand<TestEvent, UUID> { @Override public EventStream<TestEvent> events() throws Exception { TestEvent event = new TestEvent(); return EventStream.ofWithState(event, event); } @Override public UUID result(TestEvent state) { return state.uuid(); } } @Test @SneakyThrows public void lookup() { UUID uuid = repository.publish(new TestCommand()).get(); Optional<TestEvent> correct = ModelQueries.lookup(repository, TestEvent.class, TestEvent.ID, uuid); assertTrue(correct.isPresent()); Optional<TestEvent> incorrect = ModelQueries.lookup(repository, TestEvent.class, TestEvent.ID, UUID.randomUUID()); assertFalse(incorrect.isPresent()); } }