package org.myeslib.jdbi.storage;
import static org.mockito.Mockito.verify;
import java.util.Arrays;
import java.util.UUID;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.myeslib.core.Command;
import org.myeslib.core.Event;
import org.myeslib.core.data.UnitOfWork;
import org.myeslib.example.SampleDomain.IncreaseInventory;
import org.myeslib.example.SampleDomain.InventoryIncreased;
import org.myeslib.util.jdbi.UnitOfWorkJournalDao;
@RunWith(MockitoJUnitRunner.class)
public class JdbiUnitOfWorkJournalTest {
@Mock
UnitOfWorkJournalDao<UUID> dao;
@Test
public void insert() {
JdbiUnitOfWorkJournal<UUID> writer = new JdbiUnitOfWorkJournal<>(dao);
UUID id = UUID.randomUUID();
Command command1 = new IncreaseInventory(UUID.randomUUID(), id, 2, 0l);
Event event11 = new InventoryIncreased(id, 1);
Event event12 = new InventoryIncreased(id, 1);
UnitOfWork uow1 = UnitOfWork.create(UUID.randomUUID(), command1, Arrays.asList(event11, event12));
writer.append(id, uow1);
verify(dao).append(id, uow1);
}
}