1   /*
2    * Copyright (C) 2012 Atlassian
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.atlassian.jira.rest.client.internal.json;
18  
19  import com.atlassian.jira.rest.client.TestUtil;
20  import com.atlassian.jira.rest.client.domain.CustomFieldOption;
21  import com.google.common.collect.ImmutableList;
22  import junit.framework.Assert;
23  import org.junit.Test;
24  
25  import java.util.Collections;
26  
27  /**
28   * @since v1.0
29   */
30  public class CustomFieldOptionJsonParserTest {
31  
32  	@Test
33  	public void testParseMinimal() throws Exception {
34  		CustomFieldOptionJsonParser parser = new CustomFieldOptionJsonParser();
35  		final CustomFieldOption customFieldOption = parser.parse(ResourceUtil
36  				.getJsonObjectFromResource("/json/customFieldOption/valid-minimal.json"));
37  
38  		final CustomFieldOption expected = new CustomFieldOption(10017L,
39  				TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10017"), "colors",
40  				Collections.<CustomFieldOption>emptyList(), null);
41  		Assert.assertEquals(expected, customFieldOption);
42  	}
43  
44  	@Test
45  	public void testParseWithChildren() throws Exception {
46  		CustomFieldOptionJsonParser parser = new CustomFieldOptionJsonParser();
47  		final CustomFieldOption customFieldOption = parser.parse(ResourceUtil
48  				.getJsonObjectFromResource("/json/customFieldOption/valid-with-children.json"));
49  
50  		final CustomFieldOption expected = new CustomFieldOption(10017L,
51  				TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10017"), "colors",
52  				ImmutableList.of(
53  						new CustomFieldOption(10019L,
54  								TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10019"), "red",
55  								Collections.<CustomFieldOption>emptyList(), null),
56  						new CustomFieldOption(10020L,
57  								TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10020"), "blue",
58  								Collections.<CustomFieldOption>emptyList(), null),
59  						new CustomFieldOption(10021L,
60  								TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10021"), "green",
61  								Collections.<CustomFieldOption>emptyList(), null)
62  				), null);
63  		Assert.assertEquals(expected, customFieldOption);
64  	}
65  
66  	@Test
67  	public void testParseWithChild() throws Exception {
68  		CustomFieldOptionJsonParser parser = new CustomFieldOptionJsonParser();
69  		final CustomFieldOption customFieldOption = parser.parse(ResourceUtil
70  				.getJsonObjectFromResource("/json/customFieldOption/valid-with-child.json"));
71  
72  		final CustomFieldOption child = new CustomFieldOption(10019L,
73  				TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10019"), "red",
74  				Collections.<CustomFieldOption>emptyList(), null);
75  
76  		final CustomFieldOption expected = new CustomFieldOption(10017L,
77  				TestUtil.toUri("http://localhost:2990/jira/rest/api/2/customFieldOption/10017"), "colors",
78  				Collections.<CustomFieldOption>emptyList(), child);
79  		Assert.assertEquals(expected, customFieldOption);
80  	}
81  }