@SuppressWarnings("unchecked")
@Test
public void testStartPresenting() {

	presenterImpl.startPresenting();
	verify(view).setObserver(presenterImpl);
	verify(view).initializeUi();
	verify(view).setYear(2014);
	verify(view).setMonth(7);
	verify(projectService).listAllProject(anyMap());
	verify(presenterFactory, times(2)).createTimesheetDayChangePresenter(null);
	verify(dayChangePresenter, times(2)).setTimesheetDay(any(TimesheetDay.class));
	verify(dayChangePresenter, times(2)).setProjectList(anyListOf(Project.class));
	verify(dayChangePresenter, times(2)).setHoursChangeObserver(presenterImpl);
	verify(dayChangePresenter, times(2)).startPresenting();
	verify(view, times(2)).addTimesheetDayView(any(TimesheetDayChangeView.class));
	// need a low delta in here
	verify(view, times(1)).setProjectSum(eq("test"), floatThat(new BaseMatcher<Float>() {
		float target = 1.0f + 22.0f / 60.0f;
		@Override
		public void describeTo(Description arg0) {
			arg0.appendText("Roundabout " + target);
		}
		@Override
		public boolean matches(Object arg0) {
			return Math.abs(((Float) arg0).floatValue() - target) < Float.MIN_NORMAL;
		}
	}));
}