Package org.neo4j.smack.pipeline.core

Source Code of org.neo4j.smack.pipeline.core.TestWorkTransactionPreparer

package org.neo4j.smack.pipeline.core;

import static org.mockito.Matchers.anyLong;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import org.junit.Test;
import org.neo4j.smack.pipeline.core.WorkTransactionPreparer;
import org.neo4j.smack.pipeline.core.event.TransactionWork;
import org.neo4j.smack.pipeline.event.WorkTransactionMode;


public class TestWorkTransactionPreparer
{
    @Test
    public void shouldSetNoTransactionIfNoTxIdAndNotTransactional()
    {
        WorkTransactionPreparer prepper = new WorkTransactionPreparer();
        TransactionWork txWork = mock(TransactionWork.class);
       
        when(txWork.getTransactionId()).thenReturn(-1l);
        when(txWork.isTransactional()).thenReturn(false);
       
        prepper.prepare(txWork);
       
        verify(txWork).setTransactionMode(WorkTransactionMode.NO_TRANSACTION);
       
        // TODO: Is it necessary that it generates a tx id for non-transactional work?
        verify(txWork).setTransactionId(0l);
    }
   
    @Test
    public void shouldSetOpenTransactionToTransactionalWorkWithTxId()
    {
        WorkTransactionPreparer prepper = new WorkTransactionPreparer();
        TransactionWork txWork = mock(TransactionWork.class);
       
        when(txWork.getTransactionId()).thenReturn(1l);
        when(txWork.isTransactional()).thenReturn(true);
       
        prepper.prepare(txWork);
       
        verify(txWork).setTransactionMode(WorkTransactionMode.OPEN_TRANSACTION);
        verify(txWork, never()).setTransactionId(anyLong());
    }
   
    @Test
    public void shouldSetSingleTransactionToTransactionalWorkWithNoTxId()
    {
        WorkTransactionPreparer prepper = new WorkTransactionPreparer();
        TransactionWork txWork = mock(TransactionWork.class);
       
        when(txWork.getTransactionId()).thenReturn(-1l);
        when(txWork.isTransactional()).thenReturn(true);
       
        prepper.prepare(txWork);
       
        verify(txWork).setTransactionMode(WorkTransactionMode.SINGLE_TRANSACTION);
        verify(txWork).setTransactionId(anyLong());
    }
   
}
TOP

Related Classes of org.neo4j.smack.pipeline.core.TestWorkTransactionPreparer

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.