package com.kickstarter.models; import com.kickstarter.KSRobolectricTestCase; import com.kickstarter.factories.ProjectFactory; import org.joda.time.DateTime; import org.junit.Test; public class ProjectTest extends KSRobolectricTestCase { Project projectWithSecureUrl() { final String projectUrl = "https://www.kickstarter.com/projects/foo/bar"; final Project.Urls urls = Project.Urls.builder() .web(Project.Urls.Web.builder().project(projectUrl).rewards(projectUrl + "/rewards").build()) .build(); return ProjectFactory.project().toBuilder().urls(urls).build(); } @Test public void testSecureWebProjectUrl() { final String projectUrl = "http://www.kickstarter.com/projects/foo/bar"; final Project.Urls urls = Project.Urls.builder() .web(Project.Urls.Web.builder().project(projectUrl).rewards(projectUrl + "/rewards").build()) .build(); final Project project = ProjectFactory.project().toBuilder().urls(urls).build(); assertEquals("https://www.kickstarter.com/projects/foo/bar", project.secureWebProjectUrl()); } @Test public void testNewPledgeUrl() { assertEquals("https://www.kickstarter.com/projects/foo/bar/pledge/new", projectWithSecureUrl().newPledgeUrl()); } @Test public void testEditPledgeUrl() { assertEquals("https://www.kickstarter.com/projects/foo/bar/pledge/edit", projectWithSecureUrl().editPledgeUrl()); } @Test public void testPercentageFunded() { assertEquals(50.0f, ProjectFactory.halfWayProject().percentageFunded()); assertEquals(100.0f, ProjectFactory.allTheWayProject().percentageFunded()); assertEquals(200.0f, ProjectFactory.doubledGoalProject().percentageFunded()); } @Test public void testIsApproachingDeadline() { final Project projectApproachingDeadline = ProjectFactory.project().toBuilder() .deadline(new DateTime().plusDays(1)).build(); final Project projectNotApproachingDeadline = ProjectFactory.project().toBuilder() .deadline(new DateTime().plusDays(3)).build(); assertTrue(projectApproachingDeadline.isApproachingDeadline()); assertFalse(projectNotApproachingDeadline.isApproachingDeadline()); } }