1920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson/*
2920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Copyright (C) 2010 Google Inc.
3920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson *
4920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Licensed under the Apache License, Version 2.0 (the "License");
5920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * you may not use this file except in compliance with the License.
6920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * You may obtain a copy of the License at
7920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson *
8920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * http://www.apache.org/licenses/LICENSE-2.0
9920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson *
10920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * Unless required by applicable law or agreed to in writing, software
11920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * distributed under the License is distributed on an "AS IS" BASIS,
12920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * See the License for the specific language governing permissions and
14920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson * limitations under the License.
15920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson */
16920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
17920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonpackage doclava;
18920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
19920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport com.google.doclava.Errors;
20920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport com.google.doclava.Errors.Error;
21920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport com.google.doclava.Errors.ErrorMessage;
22920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport com.google.doclava.apicheck.ApiCheck;
23920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport com.google.doclava.apicheck.ApiCheck.Report;
24920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
25920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport junit.framework.TestCase;
26920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
27920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonimport java.util.Iterator;
28920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
29920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodsonpublic class ApiCheckTest extends TestCase {
30920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  /**
31920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson   * Clear all errors and make sure all future errors will be recorded.
32920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson   */
33920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void setUp() {
34920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Errors.clearErrors();
35920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    for (Errors.Error error : Errors.ERRORS) {
36920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson      Errors.setErrorLevel(error.code, Errors.ERROR);
37920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    }
38920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
39920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
40920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testEquivalentApi() {
41920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/medium.xml", "test/api/medium.xml" };
42920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
43920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
44920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(report.errors().size(), 0);
45920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
46920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
47920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testMethodReturnTypeChanged() {
48920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/return-type-changed-1.xml", "test/api/return-type-changed-2.xml" };
49920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
50920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
51920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
52920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_TYPE, report.errors().iterator().next().error());
53920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
54920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
55920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testMethodParameterChanged() {
56920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/parameter-changed-1.xml", "test/api/parameter-changed-2.xml" };
57920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
58920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
59920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(2, report.errors().size());
60920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
61920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Iterator<ErrorMessage> errors = report.errors().iterator();
62920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ErrorMessage m1 = errors.next();
63920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ErrorMessage m2 = errors.next();
64920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertNotSame(m1.error(), m2.error());
65920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertTrue(m1.error().equals(Errors.ADDED_METHOD) || m1.error().equals(Errors.REMOVED_METHOD));
66920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertTrue(m2.error().equals(Errors.ADDED_METHOD) || m2.error().equals(Errors.REMOVED_METHOD));
67920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
68920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
69920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testConstructorParameterChanged() {
70920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/parameter-changed-1.xml", "test/api/parameter-changed-3.xml" };
71920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
72920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
73920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(2, report.errors().size());
74920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Iterator<ErrorMessage> errors = report.errors().iterator();
75920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ErrorMessage m1 = errors.next();
76920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ErrorMessage m2 = errors.next();
77920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertNotSame(m1.error(), m2.error());
78920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertTrue(m1.error().equals(Errors.ADDED_METHOD) || m1.error().equals(Errors.REMOVED_METHOD));
79920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertTrue(m2.error().equals(Errors.ADDED_METHOD) || m2.error().equals(Errors.REMOVED_METHOD));
80920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
81920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
82920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testAddedClass() {
83920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/simple.xml", "test/api/add-class.xml" };
84920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
85920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
86920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
87920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.ADDED_CLASS, report.errors().iterator().next().error());
88920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
89920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
90920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testRemovedClass() {
91920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/add-class.xml", "test/api/simple.xml" };
92920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
93920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
94920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
95920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.REMOVED_CLASS, report.errors().iterator().next().error());
96920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
97920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
98920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedSuper() {
99920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/simple.xml", "test/api/changed-super.xml" };
100920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
101920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
102920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
103920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SUPERCLASS, report.errors().iterator().next().error());
104920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
10511b179627c411772f1eac023d915ab8532e55211Mathieu
10611b179627c411772f1eac023d915ab8532e55211Mathieu  public void testChangedAssignableReturn() {
10711b179627c411772f1eac023d915ab8532e55211Mathieu    String[] args = { "test/api/changed-assignable-return-1.xml", "test/api/changed-assignable-return-2.xml" };
10811b179627c411772f1eac023d915ab8532e55211Mathieu    ApiCheck apiCheck = new ApiCheck();
10911b179627c411772f1eac023d915ab8532e55211Mathieu    Report report = apiCheck.checkApi(args);
11011b179627c411772f1eac023d915ab8532e55211Mathieu    assertEquals(0, report.errors().size());
11111b179627c411772f1eac023d915ab8532e55211Mathieu  }
112920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
113ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu  public void testInsertedSuper() {
114ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu    String[] args = { "test/api/inserted-super-1.xml", "test/api/inserted-super-2.xml" };
115ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu    ApiCheck apiCheck = new ApiCheck();
116ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu    Report report = apiCheck.checkApi(args);
117ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu    assertEquals(0, report.errors().size());
118ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu  }
119ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu
120920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testAddedInterface() {
121920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/removed-interface.xml", "test/api/medium.xml" };
122920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
123920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
124920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
125920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.ADDED_INTERFACE, report.errors().iterator().next().error());
126920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
127920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
128920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testRemovedInterface() {
129920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/medium.xml", "test/api/removed-interface.xml" };
130920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
131920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
132920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
133920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.REMOVED_INTERFACE, report.errors().iterator().next().error());
134920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
135920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
136920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedAbstractClass() {
137920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/medium.xml", "test/api/changed-abstract.xml" };
138920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
139920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
140920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
141920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_ABSTRACT, report.errors().iterator().next().error());
142920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
143920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
144920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedAbstractClass2() {
145920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-abstract.xml", "test/api/medium.xml" };
146920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
147920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
148920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
149920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_ABSTRACT, report.errors().iterator().next().error());
150920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
151920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
152920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedAbstractMethod() {
153920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/medium.xml", "test/api/changed-abstract2.xml" };
154920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
155920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
156920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
157920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_ABSTRACT, report.errors().iterator().next().error());
158920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
159920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
160920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedAbstractMethod2() {
161920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-abstract2.xml", "test/api/medium.xml" };
162920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
163920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
164920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
165920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_ABSTRACT, report.errors().iterator().next().error());
166920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
167920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
168920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testAddedPackage() {
169920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/medium.xml", "test/api/added-package.xml" };
170920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
171920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
172920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
173920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.ADDED_PACKAGE, report.errors().iterator().next().error());
174920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
175920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
176920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testRemovedPackage() {
177920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/added-package.xml", "test/api/medium.xml" };
178920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
179920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
180920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
181920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.REMOVED_PACKAGE, report.errors().iterator().next().error());
182920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
183920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
184920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedValue() {
185920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-value.xml" };
186920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
187920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
188920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
189920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_VALUE, report.errors().iterator().next().error());
190920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
191920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
192920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedValue2() {
193920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-value2.xml" };
194920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
195920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
196920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
197920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_VALUE, report.errors().iterator().next().error());
198920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
199920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
200920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedType() {
201920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-type.xml" };
202920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
203920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
204920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
205920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_TYPE, report.errors().iterator().next().error());
206920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
207920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
208920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedFinalField() {
209920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-final.xml" };
210920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
211920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
212920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
213920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_FINAL, report.errors().iterator().next().error());
214920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
215920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
216920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedFinalMethod() {
217920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-final2.xml" };
218920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
219920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
220920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
221920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_FINAL, report.errors().iterator().next().error());
222920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
223920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
224920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedFinalClass() {
225920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-final3.xml" };
226920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
227920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
228920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
229920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_FINAL, report.errors().iterator().next().error());
230920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
231920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
232920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedFinalClass2() {
233920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-final3.xml", "test/api/constants.xml" };
234920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
235920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
236920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
237920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_FINAL, report.errors().iterator().next().error());
238920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
239920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
240920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testAddedField() {
241920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/added-field.xml" };
242920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
243920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
244920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
245920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.ADDED_FIELD, report.errors().iterator().next().error());
246920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
247920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
248920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testRemovedField() {
249920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/added-field.xml", "test/api/constants.xml" };
250920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
251920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
252920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
253920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.REMOVED_FIELD, report.errors().iterator().next().error());
254920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
255920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
256920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedStaticMethod() {
257920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-static.xml" };
258920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
259920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
260920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
261920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_STATIC, report.errors().iterator().next().error());
262920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
263920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
264920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedStaticClass() {
265920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-static2.xml" };
266920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
267920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
268920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
269920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_STATIC, report.errors().iterator().next().error());
270920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
271920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
272920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedStaticField() {
273920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-static3.xml" };
274920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
275920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
276920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
277920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_STATIC, report.errors().iterator().next().error());
278920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
279920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
280920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedTransient() {
281920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-transient.xml" };
282920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
283920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
284920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
285920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_TRANSIENT, report.errors().iterator().next().error());
286920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
287920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
288920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedSynchronized() {
289920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-synchronized.xml" };
290920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
291920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
29248bd9fd589daaa11705dce8480c5b51f5b4a9e0fElliott Hughes    assertEquals(0, report.errors().size());
293920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
294920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
295920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedVolatile() {
296920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-volatile.xml" };
297920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
298920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
299920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
300920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_VOLATILE, report.errors().iterator().next().error());
301920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
302920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
303920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedNative() {
304920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-native.xml" };
305920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
306920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
307920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
308920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_NATIVE, report.errors().iterator().next().error());
309920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
310920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
311920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedScopeMethod() {
312920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-scope.xml" };
313920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
314920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
315920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
316920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SCOPE, report.errors().iterator().next().error());
317920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
318920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
319920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedScopeClass() {
320920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-scope.xml", "test/api/constants.xml" };
321920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
322920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
323920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
324920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SCOPE, report.errors().iterator().next().error());
325920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
326920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
327920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedScopeClass2() {
328920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-scope2.xml" };
329920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
330920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
331920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
332920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SCOPE, report.errors().iterator().next().error());
333920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
334920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
335920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedScopeField() {
336920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-scope3.xml" };
337920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
338920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
339920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
340920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SCOPE, report.errors().iterator().next().error());
341920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
342920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
343920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedConstructorScope() {
344920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-scope4.xml" };
345920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
346920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
347920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
348920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_SCOPE, report.errors().iterator().next().error());
349920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
350920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
351920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedMethodThrows() {
352920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/throws.xml", "test/api/removed-exception.xml" };
353920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
354920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
355920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
356920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_THROWS, report.errors().iterator().next().error());
357920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
358920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
359920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedMethodThrows2() {
360920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/removed-exception.xml", "test/api/throws.xml" };
361920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
362920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
363920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
364920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_THROWS, report.errors().iterator().next().error());
365920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
366920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
367920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedConstructorThrows() {
368920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/throws.xml", "test/api/added-exception.xml" };
369920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
370920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
371920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
372920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_THROWS, report.errors().iterator().next().error());
373920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
374920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
375920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedConstructorThrows2() {
376920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/added-exception.xml", "test/api/throws.xml" };
377920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
378920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
379920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
380920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_THROWS, report.errors().iterator().next().error());
381920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
382920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
383920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedMethodDeprecated() {
384920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-deprecated.xml" };
385920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
386920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
387920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
388920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_DEPRECATED, report.errors().iterator().next().error());
389920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
390920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
391920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedConstructorDeprecated() {
392920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-deprecated2.xml" };
393920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
394920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
395920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
396920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_DEPRECATED, report.errors().iterator().next().error());
397920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
398920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
399920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedFieldDeprecated() {
400920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/constants.xml", "test/api/changed-deprecated3.xml" };
401920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
402920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
403920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
404920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_DEPRECATED, report.errors().iterator().next().error());
405920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
406920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
407920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedClassToInterface() {
408920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-class-info2.xml", "test/api/changed-class-info.xml" };
409920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
410920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
411920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
412920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_CLASS, report.errors().iterator().next().error());
413920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
414920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson
415920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  public void testChangedInterfaceToClass() {
416920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    String[] args = { "test/api/changed-class-info.xml", "test/api/changed-class-info2.xml" };
417920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    ApiCheck apiCheck = new ApiCheck();
418920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    Report report = apiCheck.checkApi(args);
419920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(1, report.errors().size());
420920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson    assertEquals(Errors.CHANGED_CLASS, report.errors().iterator().next().error());
421920dbbbaca6aa578f3b26d89e99d12754c26ed60Ben Dodson  }
422ffecf3c5c207d0275d480970fd025cb9526b1905Mathieu}
423