package org.internna.ossmoney.cache;
import org.junit.Test;
import org.junit.Before;
import java.util.Map;
import java.util.Date;
import java.util.HashMap;
import java.util.Currency;
import java.math.BigDecimal;
import org.internna.ossmoney.model.Subcategory;
import org.internna.ossmoney.model.security.UserDetails;
import org.internna.ossmoney.model.support.IncomeExpense;
import org.internna.ossmoney.model.support.NameValuePair;
import static org.junit.Assert.*;
public class CacheStoreTest {
private UserDetails user;
private CacheStore cache;
@Before
public void init() {
cache = new CacheStore();
user = new UserDetails();
user.setId(1L);
}
@Test
public void testInvalidate() {
testIncomeAndExpenses();
cache.invalidate(user);
assertNull("Data invalidated", cache.getIncomeAndExpenses(user, "intervals"));
}
@Test
public void testIncomeAndExpenses() {
assertNull("Data not stored", cache.getIncomeAndExpenses(user, "intervals"));
Map<Currency, NameValuePair<BigDecimal, BigDecimal>> data = new HashMap<Currency, NameValuePair<BigDecimal, BigDecimal>>();
cache.storeIncomeAndExpenses(user, "intervals", data);
assertNotNull("Data stored", cache.getIncomeAndExpenses(user, "intervals"));
}
@Test
public void testExpensesByCategory() {
assertNull("Data not stored", cache.getExpensesByCategory(user, "intervals"));
Map<Currency, Map<Subcategory, BigDecimal>> data = new HashMap<Currency, Map<Subcategory, BigDecimal>>();
cache.storeExpensesByCategory(user, "intervals", data);
assertNotNull("Data stored", cache.getExpensesByCategory(user, "intervals"));
}
@Test
public void testNetWorthOverTime() {
assertNull("Data not stored", cache.getNetWorthOverTime(user, 11));
Map<Currency, Map<Date, IncomeExpense>> data = new HashMap<Currency, Map<Date, IncomeExpense>>();
cache.storeNetWorthOverTime(user, 11, data);
assertNotNull("Data stored", cache.getNetWorthOverTime(user, 11));
}
@Test
public void testIncomeVsExpensesOverTime() {
assertNull("Data not stored", cache.getIncomeVsExpensesOverTime(user, 11));
Map<Currency, Map<Date, IncomeExpense>> data = new HashMap<Currency, Map<Date, IncomeExpense>>();
cache.storeIncomeVsExpensesOverTime(user, 11, data);
assertNotNull("Data stored", cache.getIncomeVsExpensesOverTime(user, 11));
}
@Test
public void testCategoryData() {
Subcategory category = new Subcategory();
category.setId(1L);
String intervals = "LAST_QUARTER";
assertNull("Data not stored", cache.getCategoryData(user, category, intervals));
cache.storeCategoryData(user, category, intervals, new HashMap<String, Map<Date, NameValuePair<Date, BigDecimal>>>());
assertNotNull("Data stored", cache.getCategoryData(user, category, intervals));
}
@Test
public void testMaxCategoryData() {
Subcategory category = new Subcategory();
category.setId(1L);
String intervals = "LAST_QUARTER";
assertNull("Data not stored", cache.getMaxCategoryData(user, category, intervals));
cache.storeMaxCategoryData(user, category, intervals, new HashMap<String, BigDecimal>());
assertNotNull("Data stored", cache.getMaxCategoryData(user, category, intervals));
}
}