/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contentdata.custom; import java.util.Iterator; import org.junit.Test; import static org.junit.Assert.*; /** * Apr 22, 2010 */ public class BlockGroupDataEntriesTest { @Test public void numberOfEntries_Should_return_1_when_adding_only_one_entry() { BlockGroupDataEntries entries = new BlockGroupDataEntries( "Events" ); GroupDataEntry entry = new GroupDataEntry( "Event", "events", 1 ); entries.add( entry ); assertEquals( 1, entries.numberOfEntries() ); } @Test public void reorganizeBySuccesiveIndexOrder() { BlockGroupDataEntries entries = new BlockGroupDataEntries( "Events" ); GroupDataEntry entry1 = new GroupDataEntry( "Event", "events", 1 ); entries.add( entry1 ); GroupDataEntry entry2 = new GroupDataEntry( "Event", "events", 3 ); entries.add( entry2 ); // exercise entries.reorganizeBySuccesiveIndexOrder(); // verify assertEquals( 2, entries.numberOfEntries() ); Iterator<GroupDataEntry> entryIterator = entries.getGroupDataEntries().iterator(); assertEquals( 1, entryIterator.next().getGroupIndex() ); assertEquals( 2, entryIterator.next().getGroupIndex() ); assertEquals( 2, entries.lasIndex() ); assertEquals( 3, entries.expectedNextIndex() ); } @Test public void adding_an_entry_Should_throw_exception_When_an_entry_with_same_index_exists() { BlockGroupDataEntries entries = new BlockGroupDataEntries( "Events" ); GroupDataEntry entry1 = new GroupDataEntry( "Event", "events", 1 ); entries.add( entry1 ); GroupDataEntry entry2 = new GroupDataEntry( "Event", "events", 1 ); try { entries.add( entry2 ); fail( "Expected exception" ); } catch ( Throwable e ) { assertTrue( e instanceof IllegalArgumentException ); assertEquals( "GroupDataEntry at index 1 already exists.", e.getMessage() ); } } }