package ru.orangesoftware.financisto2.test.builders; import ru.orangesoftware.financisto2.db.DatabaseAdapter; import ru.orangesoftware.financisto2.model.Account; import ru.orangesoftware.financisto2.model.Currency; /** * Created by IntelliJ IDEA. * User: Denis Solonenko * Date: 3/2/11 9:07 PM */ public class AccountBuilder { private final DatabaseAdapter db; private final Account a = new Account(); public static Account createDefault(DatabaseAdapter db) { Currency c = CurrencyBuilder.createDefault(db); return createDefault(db, c); } public static Account createDefault(DatabaseAdapter db, Currency c) { return withDb(db).title("Cash").currency(c).create(); } public static AccountBuilder withDb(DatabaseAdapter db) { return new AccountBuilder(db); } private AccountBuilder(DatabaseAdapter db) { this.db = db; } public AccountBuilder title(String title) { a.title = title; return this; } public AccountBuilder currency(Currency c) { a.currency = c; return this; } public AccountBuilder total(long amount) { a.totalAmount = amount; return this; } public AccountBuilder doNotIncludeIntoTotals() { a.isIncludeIntoTotals = false; return this; } public AccountBuilder inactive() { a.isActive = false; return this; } public Account create() { db.saveAccount(a); return a; } }