package org.multibit.mbm.core.accounting; import org.junit.Test; import java.util.HashSet; import java.util.Set; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; public class AccountTest { @Test public void testInitialBalance() { Account testObject = new Account(); assertThat(testObject.getBalance(), equalTo(0L)); } @Test public void testBalanceAfterAdd() { Account<DefaultEntry> testObject = new Account<DefaultEntry>(); DefaultEntry e1 = EntryFactory.INSTANCE.buildDefaultEntry(testObject, 0L); testObject.addEntry(e1); assertThat(testObject.getBalance(), equalTo(0L)); DefaultEntry e2 = EntryFactory.INSTANCE.buildDefaultEntry(testObject, 1L); testObject.addEntry(e2); assertThat(testObject.getBalance(), equalTo(1L)); DefaultEntry e3 = EntryFactory.INSTANCE.buildDefaultEntry(testObject, 2L); testObject.addEntry(e3); assertThat(testObject.getBalance(), equalTo(3L)); DefaultEntry e4 = EntryFactory.INSTANCE.buildDefaultEntry(testObject, 3L); testObject.addEntry(e4); assertThat(testObject.getBalance(), equalTo(6L)); } @Test public void testBalanceAfterAddAll() { // Configure supporting objects Account<DefaultEntry> testObject = new Account<DefaultEntry>(); Set<DefaultEntry> entries = new HashSet<DefaultEntry>(); entries.add(EntryFactory.INSTANCE.buildDefaultEntry(testObject, 0L)); entries.add(EntryFactory.INSTANCE.buildDefaultEntry(testObject, 1L)); entries.add(EntryFactory.INSTANCE.buildDefaultEntry(testObject, -2L)); entries.add(EntryFactory.INSTANCE.buildDefaultEntry(testObject, 3L)); testObject.addEntrySet(entries); assertThat(testObject.getBalance(), equalTo(2L)); } }