Package com.wesabe.api.accounts.presenters.tests

Source Code of com.wesabe.api.accounts.presenters.tests.TagSummaryPresenterTest

package com.wesabe.api.accounts.presenters.tests;

import static com.wesabe.api.tests.util.CurrencyHelper.*;
import static com.wesabe.api.tests.util.MoneyHelper.*;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import java.util.Locale;

import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;

import com.google.common.collect.ImmutableMap;
import com.wesabe.api.accounts.analytics.MonetarySummary;
import com.wesabe.api.accounts.analytics.SumOfMoney;
import com.wesabe.api.accounts.entities.Tag;
import com.wesabe.api.accounts.presenters.MoneyPresenter;
import com.wesabe.api.accounts.presenters.SumOfMoneyPresenter;
import com.wesabe.api.accounts.presenters.TagSummaryPresenter;
import com.wesabe.xmlson.XmlsonArray;
import com.wesabe.xmlson.XmlsonObject;

@RunWith(Enclosed.class)
public class TagSummaryPresenterTest {
  public static class The_Representation_Of_A_Tag_Summary {
    private MonetarySummary summary;
    private TagSummaryPresenter presenter;
    private Tag tag;
   
    @Before
    public void setup() throws Exception {
      this.presenter = new TagSummaryPresenter(new SumOfMoneyPresenter((new MoneyPresenter())));
     
      this.tag = new Tag("food");
     
      this.summary = new MonetarySummary(
        new SumOfMoney(money("3409.32", USD), 17),
        new SumOfMoney(money("2091.11", USD), 5)
      );
    }
   
    @Test
    public void itItNamedTagSummary() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
     
      assertThat(representation.getName(), is("tag-summary"));
    }
   
    @Test
    public void itHasAnArrayOfSummaries() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
      final XmlsonArray summaries = (XmlsonArray) representation.get("summaries");
     
      assertThat(summaries.getMembers().size(), is(1));
    }
   
    @Test
    public void itHasTheSpendingDataForEachSummary() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
      final XmlsonArray summaries = (XmlsonArray) representation.get("summaries");
      final XmlsonObject summary = (XmlsonObject) summaries.getMembers().get(0);
     
      assertThat(summary.getName(), is("summary"));
     
      final XmlsonObject spending = (XmlsonObject) summary.get("spending");
     
      assertThat(spending.getInteger("count"), is(17));
      assertThat(spending.getString("value"), is("3409.32"));
      assertThat(spending.getString("display"), is("3 409,32 $ US"));
    }
   
    @Test
    public void itHasTheEarningsDataForEachSummary() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
      final XmlsonArray summaries = (XmlsonArray) representation.get("summaries");
      final XmlsonObject summary = (XmlsonObject) summaries.getMembers().get(0);
     
      assertThat(summary.getName(), is("summary"));
     
      final XmlsonObject earnings = (XmlsonObject) summary.get("earnings");
     
      assertThat(earnings.getInteger("count"), is(5));
      assertThat(earnings.getString("value"), is("2091.11"));
      assertThat(earnings.getString("display"), is("2 091,11 $ US"));
    }
   
    @Test
    public void itHasTheNetDataForEachSummary() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
      final XmlsonArray summaries = (XmlsonArray) representation.get("summaries");
      final XmlsonObject summary = (XmlsonObject) summaries.getMembers().get(0);
     
      assertThat(summary.getName(), is("summary"));
     
      final XmlsonObject net = (XmlsonObject) summary.get("net");
     
      assertThat(net.getInteger("count"), is(22));
      assertThat(net.getString("value"), is("-1318.21"));
      assertThat(net.getString("display"), is("(1 318,21 $ US)"));
    }
   
    @Test
    public void itHasTheTagForEachSummary() throws Exception {
      final XmlsonObject representation = presenter.present(ImmutableMap.of(tag, summary), Locale.CANADA_FRENCH);
      final XmlsonArray summaries = (XmlsonArray) representation.get("summaries");
      final XmlsonObject summary = (XmlsonObject) summaries.getMembers().get(0);
      final XmlsonObject tag = (XmlsonObject) summary.get("tag");
     
      assertThat(tag.getString("name"), is("food"));
    }
  }
}
TOP

Related Classes of com.wesabe.api.accounts.presenters.tests.TagSummaryPresenterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.