Examples of StubAggregate


Examples of org.axonframework.domain.StubAggregate

    @Test
    public void testInterceptCommand_SuccessfulExecution() throws Throwable {
        when(mockInterceptorChain.proceed()).thenReturn("Return value");
        UnitOfWork uow = DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        uow.registerAggregate(aggregate, mock(EventBus.class), mock(SaveAggregateCallback.class));
        GenericCommandMessage<String> command = new GenericCommandMessage<String>("Command!");
        Object result = testSubject.handle(command, uow, mockInterceptorChain);
        verify(mockAuditDataProvider, never()).provideAuditDataFor(any(CommandMessage.class));

        aggregate.doSomething();
        aggregate.doSomething();

        assertEquals("Return value", result);
        uow.commit();

        verify(mockAuditDataProvider, atLeast(1)).provideAuditDataFor(command);
        verify(mockAuditLogger, times(1)).logSuccessful(eq(command), any(Object.class), listWithTwoEventMessages());
        DomainEventMessage eventFromAggregate = aggregate.getUncommittedEvents().next();
        assertEquals("value", eventFromAggregate.getMetaData().get("key"));
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

            testSubject.handle(command, uow, mockInterceptorChain);
        } catch (RuntimeException e) {
            assertSame(mockException, e);
        }

        StubAggregate aggregate = new StubAggregate();
        uow.registerAggregate(aggregate, mock(EventBus.class), mock(SaveAggregateCallback.class));
        aggregate.doSomething();
        aggregate.doSomething();

        RuntimeException mockFailure = new RuntimeException("mock");
        uow.rollback(mockFailure);

        verify(mockAuditDataProvider, times(2)).provideAuditDataFor(any(CommandMessage.class));
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    public void testAddMetaDataOnEventDuringBeforeCommit() throws Exception {
        UnitOfWork uow = DefaultUnitOfWork.startAndGet();
        uow.registerListener(testSubject);

        uow.publishEvent(GenericEventMessage.asEventMessage("test1"), mockEventBus);
        StubAggregate aggregate = new StubAggregate();
        uow.registerAggregate(aggregate, mockEventBus, mock(SaveAggregateCallback.class));

        aggregate.doSomething();

        uow.publishEvent(new GenericDomainEventMessage<Object>("id1", 1, "test1"), mockEventBus);

        uow.commit();

        assertEquals(3, publishedMessages.size());
        assertTrue(publishedMessages.get(1) instanceof DomainEventMessage);
        assertTrue(publishedMessages.get(2) instanceof DomainEventMessage);
        assertEquals("test1", publishedMessages.get(0).getMetaData().get("test1"));
        assertEquals("test2", publishedMessages.get(0).getMetaData().get("test2"));
        assertEquals("test3", publishedMessages.get(0).getMetaData().get("test3"));
        assertEquals("test1", publishedMessages.get(1).getMetaData().get("test1"));
        assertEquals("test2", publishedMessages.get(1).getMetaData().get("test2"));
        assertEquals("test3", publishedMessages.get(1).getMetaData().get("test3"));
        assertSame(aggregate.getIdentifier(), ((DomainEventMessage) publishedMessages.get(1)).getAggregateIdentifier());
        assertEquals("test1", publishedMessages.get(2).getMetaData().get("test1"));
        assertEquals("test2", publishedMessages.get(2).getMetaData().get("test2"));
        assertEquals("test3", publishedMessages.get(2).getMetaData().get("test3"));
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    }

    @Test
    public void testStoreNewAggregate() {
        DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        aggregate.doSomething();
        testSubject.add(aggregate);
        CurrentUnitOfWork.commit();

        verify(lockManager).obtainLock(aggregate.getIdentifier());
        verify(mockEventBus).publish(isA(DomainEventMessage.class));
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    }

    @Test
    public void testLoadAndStoreAggregate() {
        DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        aggregate.doSomething();
        testSubject.add(aggregate);
        verify(lockManager).obtainLock(aggregate.getIdentifier());
        CurrentUnitOfWork.commit();
        verify(lockManager).releaseLock(aggregate.getIdentifier());
        reset(lockManager);

        DefaultUnitOfWork.startAndGet();
        StubAggregate loadedAggregate = testSubject.load(aggregate.getIdentifier(), 0L);
        verify(lockManager).obtainLock(aggregate.getIdentifier());

        loadedAggregate.doSomething();
        CurrentUnitOfWork.commit();

        InOrder inOrder = inOrder(lockManager);
        inOrder.verify(lockManager, atLeastOnce()).validateLock(loadedAggregate);
        verify(mockEventBus, times(2)).publish(any(DomainEventMessage.class));
        inOrder.verify(lockManager).releaseLock(loadedAggregate.getIdentifier());
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    @SuppressWarnings({"ThrowableInstanceNeverThrown"})
    @Test
    public void testLoadAndStoreAggregate_LockReleasedOnException() {
        DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        aggregate.doSomething();
        testSubject.add(aggregate);
        verify(lockManager).obtainLock(aggregate.getIdentifier());
        CurrentUnitOfWork.commit();
        verify(lockManager).releaseLock(aggregate.getIdentifier());
        reset(lockManager);

        DefaultUnitOfWork.startAndGet();
        StubAggregate loadedAggregate = testSubject.load(aggregate.getIdentifier(), 0L);
        verify(lockManager).obtainLock(aggregate.getIdentifier());

        CurrentUnitOfWork.get().registerListener(new UnitOfWorkListenerAdapter() {
            @Override
            public void onPrepareCommit(UnitOfWork unitOfWork, Set<AggregateRoot> aggregateRoots,
                                        List<EventMessage> events) {
                throw new RuntimeException("Mock Exception");
            }
        });
        try {
            CurrentUnitOfWork.commit();
            fail("Expected exception to be thrown");
        } catch (RuntimeException e) {
            assertEquals("Mock Exception", e.getMessage());
        }

        // make sure the lock is released
        verify(lockManager).releaseLock(loadedAggregate.getIdentifier());
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

        testSubject.setEventBus(mockEventBus);
        testSubject = spy(testSubject);

        // we do the same test, but with a pessimistic lock, which has a different way of "re-acquiring" a lost lock
        DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        aggregate.doSomething();
        testSubject.add(aggregate);
        verify(lockManager).obtainLock(aggregate.getIdentifier());
        CurrentUnitOfWork.commit();
        verify(lockManager).releaseLock(aggregate.getIdentifier());
        reset(lockManager);

        DefaultUnitOfWork.startAndGet();
        StubAggregate loadedAggregate = testSubject.load(aggregate.getIdentifier(), 0L);
        verify(lockManager).obtainLock(aggregate.getIdentifier());

        CurrentUnitOfWork.get().registerListener(new UnitOfWorkListenerAdapter() {
            @Override
            public void onPrepareCommit(UnitOfWork unitOfWork, Set<AggregateRoot> aggregateRoots,
                                        List<EventMessage> events) {
                throw new RuntimeException("Mock Exception");
            }
        });

        try {
            CurrentUnitOfWork.commit();
            fail("Expected exception to be thrown");
        } catch (RuntimeException e) {
            assertEquals("Mock Exception", e.getMessage());
        }

        // make sure the lock is released
        verify(lockManager).releaseLock(loadedAggregate.getIdentifier());
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

        testSubject.setEventBus(mockEventBus);
        testSubject = spy(testSubject);
        EventBus eventBus = mock(EventBus.class);

        DefaultUnitOfWork.startAndGet();
        StubAggregate aggregate = new StubAggregate();
        aggregate.doSomething();
        testSubject.add(aggregate);
        CurrentUnitOfWork.commit();

        DefaultUnitOfWork.startAndGet();
        StubAggregate loadedAggregate = testSubject.load(aggregate.getIdentifier(), 0L);
        loadedAggregate.doSomething();
        CurrentUnitOfWork.commit();

        // this tricks the UnitOfWork to save this aggregate, without loading it.
        DefaultUnitOfWork.startAndGet();
        CurrentUnitOfWork.get().registerAggregate(loadedAggregate,
                                                  eventBus,
                                                  new SaveAggregateCallback<StubAggregate>() {
                                                      @Override
                                                      public void save(StubAggregate aggregate) {
                                                          testSubject.doSave(aggregate);
                                                      }
                                                  });
        loadedAggregate.doSomething();
        try {
            CurrentUnitOfWork.commit();
            fail("This should have failed due to lacking lock");
        } catch (ConcurrencyException e) {
            // that's ok
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    }

    @Test
    public void testLockFailsOnConcurrentModification() {
        UUID identifier = UUID.randomUUID();
        StubAggregate aggregate1 = new StubAggregate(identifier);
        StubAggregate aggregate2 = new StubAggregate(identifier);
        OptimisticLockManager manager = new OptimisticLockManager();
        manager.obtainLock(aggregate1.getIdentifier());
        manager.obtainLock(aggregate2.getIdentifier());

        aggregate1.doSomething();
        aggregate2.doSomething();

        assertTrue("The first on to commit should contain the lock", manager.validateLock(aggregate1));
        assertFalse("Expected this lock to be invalid", manager.validateLock(aggregate2));
    }
View Full Code Here

Examples of org.axonframework.domain.StubAggregate

    }

    @Test
    public void testCommandHandlerLoadsSameAggregateTwice() {
        DefaultUnitOfWork.startAndGet();
        StubAggregate stubAggregate = new StubAggregate(aggregateIdentifier);
        stubAggregate.doSomething();
        repository.add(stubAggregate);
        CurrentUnitOfWork.commit();

        DefaultUnitOfWork.startAndGet();
        repository.load(aggregateIdentifier).doSomething();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.