1   package com.atlassian.jira.rest.client.domain.input;
2   
3   import com.atlassian.jira.rest.client.TestUtil;
4   import org.junit.Before;
5   import org.junit.Test;
6   
7   import java.net.URI;
8   
9   import static com.atlassian.jira.rest.client.domain.input.WorklogInput.AdjustEstimate;
10  import static com.atlassian.jira.rest.client.domain.input.WorklogInputBuilder.ESTIMATE_UNIT_MINUTES;
11  import static org.hamcrest.Matchers.equalTo;
12  import static org.junit.Assert.*;
13  
14  public class WorklogInputBuilderTest {
15  
16  	private final static URI dummyUri = TestUtil.toUri("http://jira.atlassian.com/");
17  
18  	private WorklogInputBuilder builder;
19  
20  	private static String asMinutes(int value) {
21  		return value + ESTIMATE_UNIT_MINUTES;
22  	}
23  
24  	@Before
25  	public void beforeMethod() {
26  		builder = new WorklogInputBuilder(dummyUri);
27  	}
28  
29  	private void testAdjustEstimateImpl(WorklogInputBuilder worklogInputBuilder, String expectedEstimateValue,
30  			AdjustEstimate expectedAdjustEstimate) throws Exception {
31  
32  		final WorklogInput worklogInput = worklogInputBuilder.build();
33  
34  		assertThat(worklogInput.getAdjustEstimate(), equalTo(expectedAdjustEstimate));
35  		assertThat(worklogInput.getAdjustEstimateValue(), equalTo(expectedEstimateValue));
36  	}
37  
38  	@Test
39  	public void testSetAdjustEstimateNewMinutes() throws Exception {
40  		testAdjustEstimateImpl(builder.setAdjustEstimateNew(12345), asMinutes(12345), AdjustEstimate.NEW);
41  	}
42  
43  	@Test
44  	public void testSetAdjustEstimateNew() throws Exception {
45  		testAdjustEstimateImpl(builder.setAdjustEstimateNew("1w 2d 3h 5m"), "1w 2d 3h 5m", AdjustEstimate.NEW);
46  	}
47  
48  	@Test
49  	public void testSetAdjustEstimateLeave() throws Exception {
50  		testAdjustEstimateImpl(builder.setAdjustEstimateLeave(), null, AdjustEstimate.LEAVE);
51  	}
52  
53  	@Test
54  	public void testSetAdjustEstimateManualMinutes() throws Exception {
55  		testAdjustEstimateImpl(builder.setAdjustEstimateManual(54321), asMinutes(54321), AdjustEstimate.MANUAL);
56  	}
57  
58  	@Test
59  	public void testSetAdjustEstimateManual() throws Exception {
60  		testAdjustEstimateImpl(builder.setAdjustEstimateManual("1w 2d 3h 5m"), "1w 2d 3h 5m", AdjustEstimate.MANUAL);
61  	}
62  
63  	@Test
64  	public void testSetAdjustEstimateAuto() throws Exception {
65  		testAdjustEstimateImpl(builder.setAdjustEstimateAuto(), null, AdjustEstimate.AUTO);
66  	}
67  }