/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestOrdinalManager.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.cmf.dam; import junit.framework.TestCase; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.database.querymanagers.generic.GenericQueryManager; import com.uwyn.rife.database.querymanagers.generic.GenericQueryManagerFactory; public class TestOrdinalManager extends TestCase { private Datasource mDatasource = null; private OrdinalManager mOrdinalManager = null; private GenericQueryManager<Ordered> mOrderedManager = null; private OrdinalManager mOrdinalRestrictedManager = null; private GenericQueryManager<OrderedRestricted> mOrderedRestrictedManager = null; public TestOrdinalManager(Datasource datasource, String datasourceName, String name) { super(name); mDatasource = datasource; } protected void setUp() throws Exception { mOrderedManager = GenericQueryManagerFactory.getInstance(mDatasource, Ordered.class); mOrdinalManager = new OrdinalManager(mDatasource, mOrderedManager.getTable(), "priority"); mOrderedManager.install(); mOrderedRestrictedManager = GenericQueryManagerFactory.getInstance(mDatasource, OrderedRestricted.class); mOrdinalRestrictedManager = new OrdinalManager(mDatasource, mOrderedRestrictedManager.getTable(), "priority", "restricted"); mOrderedRestrictedManager.install(); } protected void tearDown() throws Exception { mOrderedManager.remove(); mOrderedRestrictedManager.remove(); } public void testGetDirection() { assertSame(OrdinalManager.UP, OrdinalManager.Direction.getDirection("up")); assertSame(OrdinalManager.DOWN, OrdinalManager.Direction.getDirection("down")); } public void testInitializationIllegalArguments() { try { new OrdinalManager(null, "table", "ordinal"); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } try { new OrdinalManager(mDatasource, null, "ordinal"); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } try { new OrdinalManager(mDatasource, "table", null); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } try { new OrdinalManager(mDatasource, "table", "ordinal", null); fail(); } catch (IllegalArgumentException e) { assertTrue(true); } } public void testInitialization() { assertEquals(mOrdinalManager.getTable(), mOrderedManager.getTable()); assertEquals(mOrdinalManager.getOrdinalColumn(), "priority"); assertNull(mOrdinalManager.getRestrictColumn()); } public void testInitializationRestricted() { assertEquals(mOrdinalRestrictedManager.getTable(), mOrderedRestrictedManager.getTable()); assertEquals(mOrdinalRestrictedManager.getOrdinalColumn(), "priority"); assertEquals(mOrdinalRestrictedManager.getRestrictColumn(), "restricted"); } public void testFree() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.free(1)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedManager.restore(ordered2).getPriority()); assertEquals(3, mOrderedManager.restore(ordered3).getPriority()); assertEquals(4, mOrderedManager.restore(ordered4).getPriority()); assertEquals(5, mOrderedManager.restore(ordered5).getPriority()); } public void testFreeRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.free(1, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(3, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.free(2, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(3, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testFreeOutOfBounds() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.free(5)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered4).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); assertFalse(mOrdinalManager.free(-1)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered4).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testFreeOutOfBoundsRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.free(1, 3)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertFalse(mOrdinalRestrictedManager.free(2, -1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testFreeOutOfBoundsUnknownRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.free(3, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testMove() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.free(3)); assertTrue(mOrdinalManager.update(1, 3)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered2).getPriority()); assertEquals(4, mOrderedManager.restore(ordered4).getPriority()); assertEquals(5, mOrderedManager.restore(ordered5).getPriority()); } public void testTighten() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(3)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(13)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(28)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(56)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(300)); assertTrue(mOrdinalManager.tighten()); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered4).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testTightenRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(3).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(13).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(28).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(56).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(300).restricted(2)); assertTrue(mOrdinalRestrictedManager.tighten(1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(56, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(300, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.tighten(2)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertFalse(mOrdinalRestrictedManager.tighten(3)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testObtainInsertOrdinal() { mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertEquals(5, mOrdinalManager.obtainInsertOrdinal()); } public void testObtainInsertOrdinalRestricted() { mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertEquals(3, mOrdinalRestrictedManager.obtainInsertOrdinal(1)); assertEquals(2, mOrdinalRestrictedManager.obtainInsertOrdinal(2)); assertEquals(0, mOrdinalRestrictedManager.obtainInsertOrdinal(3)); } public void testMoveDown() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.move(OrdinalManager.DOWN, 3)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered5).getPriority()); assertEquals(4, mOrderedManager.restore(ordered4).getPriority()); } public void testMoveDownRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.DOWN, 1, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.DOWN, 2, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); } public void testMoveUp() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.move(OrdinalManager.UP, 3)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered4).getPriority()); assertEquals(3, mOrderedManager.restore(ordered3).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testMoveUpRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.UP, 1, 2)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.UP, 2, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); } public void testMoveOther() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.move(3, 1)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered4).getPriority()); assertEquals(2, mOrderedManager.restore(ordered2).getPriority()); assertEquals(3, mOrderedManager.restore(ordered3).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalManager.move(2, 4)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered4).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered2).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testMoveOtherRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.move(1, 2, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.move(2, 1, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertTrue(mOrdinalRestrictedManager.move(1, 0, 2)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertTrue(mOrdinalRestrictedManager.move(2, 0, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); } public void testMoveDownExtremity() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.move(OrdinalManager.DOWN, 4)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered4).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testMoveDownExtremityRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.DOWN, 1, 2)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.move(OrdinalManager.DOWN, 2, 1)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testMoveUpExtremity() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertFalse(mOrdinalManager.move(OrdinalManager.UP, 0)); assertEquals(0, mOrderedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered4).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); } public void testMoveUpExtremityRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertFalse(mOrdinalRestrictedManager.move(OrdinalManager.UP, 1, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertFalse(mOrdinalRestrictedManager.move(OrdinalManager.UP, 2, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } public void testMoveOtherExtremity() { int ordered1 = mOrderedManager.save(new Ordered().name("ordered 1").priority(0)); int ordered2 = mOrderedManager.save(new Ordered().name("ordered 2").priority(1)); int ordered3 = mOrderedManager.save(new Ordered().name("ordered 3").priority(2)); int ordered4 = mOrderedManager.save(new Ordered().name("ordered 4").priority(3)); int ordered5 = mOrderedManager.save(new Ordered().name("ordered 5").priority(4)); assertTrue(mOrdinalManager.move(3, 0)); assertEquals(0, mOrderedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedManager.restore(ordered2).getPriority()); assertEquals(3, mOrderedManager.restore(ordered3).getPriority()); assertEquals(4, mOrderedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalManager.move(2, 8)); assertEquals(0, mOrderedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedManager.restore(ordered3).getPriority()); assertEquals(3, mOrderedManager.restore(ordered5).getPriority()); assertEquals(4, mOrderedManager.restore(ordered2).getPriority()); } public void testMoveOtherExtremityRestricted() { int ordered1 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 1").priority(0).restricted(1)); int ordered2 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 2").priority(1).restricted(1)); int ordered3 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 3").priority(2).restricted(1)); int ordered4 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 4").priority(0).restricted(2)); int ordered5 = mOrderedRestrictedManager.save(new OrderedRestricted().name("ordered 5").priority(1).restricted(2)); assertTrue(mOrdinalRestrictedManager.move(1, 2, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertTrue(mOrdinalRestrictedManager.move(2, 1, 0)); assertEquals(0, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertTrue(mOrdinalRestrictedManager.move(1, 0, 6)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered5).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertTrue(mOrdinalRestrictedManager.move(2, 0, 7)); assertEquals(0, mOrderedRestrictedManager.restore(ordered1).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered2).getPriority()); assertEquals(2, mOrderedRestrictedManager.restore(ordered3).getPriority()); assertEquals(0, mOrderedRestrictedManager.restore(ordered4).getPriority()); assertEquals(1, mOrderedRestrictedManager.restore(ordered5).getPriority()); } }