package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.Dataverse; import edu.harvard.iq.dataverse.DataverseServiceBean; import edu.harvard.iq.dataverse.engine.DataverseEngine; import edu.harvard.iq.dataverse.mocks.MocksFactory; import edu.harvard.iq.dataverse.engine.TestCommandContext; import edu.harvard.iq.dataverse.engine.TestDataverseEngine; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * * @author michael */ public class UpdatePermissionRootCommandTest { private DataverseServiceBean mockBean; TestCommandContext testCommandContext; boolean serviceBeanCalled; @Before public void setUp() { mockBean = new DataverseServiceBean() { @Override public Dataverse save( Dataverse dv ) { serviceBeanCalled = true; return dv; } }; testCommandContext = new TestCommandContext() { @Override public DataverseServiceBean dataverses() { return mockBean; } }; serviceBeanCalled = false; } @Test public void testNoChange() throws CommandException { Dataverse dv = MocksFactory.makeDataverse(); DataverseEngine ngn = new TestDataverseEngine(testCommandContext); dv.setPermissionRoot( false ); UpdatePermissionRootCommand sut = new UpdatePermissionRootCommand(false, MocksFactory.makeRequest(), dv); Dataverse result = ngn.submit(sut); assertFalse( result.isPermissionRoot() ); assertFalse( serviceBeanCalled ); dv.setPermissionRoot( true ); sut = new UpdatePermissionRootCommand( true, MocksFactory.makeRequest(), dv ); result = ngn.submit(sut); assertTrue( result.isPermissionRoot() ); assertFalse( serviceBeanCalled ); } @Test public void testChange() throws CommandException { Dataverse dv = MocksFactory.makeDataverse(); DataverseEngine ngn = new TestDataverseEngine(testCommandContext); dv.setPermissionRoot( false ); UpdatePermissionRootCommand sut = new UpdatePermissionRootCommand(true, MocksFactory.makeRequest(), dv); Dataverse result = ngn.submit(sut); assertTrue(result.isPermissionRoot() ); assertTrue(serviceBeanCalled ); dv.setPermissionRoot( true ); sut = new UpdatePermissionRootCommand( false, MocksFactory.makeRequest(), dv ); result = ngn.submit(sut); assertFalse( result.isPermissionRoot() ); assertTrue(serviceBeanCalled ); } }