• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2009 The Android Open Source Project
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 signature.converter;
18 
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 
22 import java.io.IOException;
23 import java.util.Set;
24 
25 import org.junit.Test;
26 
27 import signature.converter.Visibility;
28 import signature.converter.util.AbstractConvertTest;
29 import signature.converter.util.CompilationUnit;
30 import signature.model.IApi;
31 import signature.model.IClassDefinition;
32 import signature.model.IMethod;
33 import signature.model.IPackage;
34 import signature.model.util.ModelUtil;
35 
36 public abstract class ConvertVisibilityTest extends AbstractConvertTest {
37 
38     @Test
testVisibilityMethods1()39     public void testVisibilityMethods1() throws IOException {
40         CompilationUnit src = new CompilationUnit("a.A",
41                 "package a;" +
42                 "public class A{" +
43                 "   public void foo1(){}" +
44                 "   protected void foo2(){}" +
45                 "   void foo3(){}" +
46                 "   private void foo4(){}" +
47                 "}");
48 
49         IApi api = convert(Visibility.PUBLIC, src);
50         IPackage p = ModelUtil.getPackage(api, "a");
51         IClassDefinition c = ModelUtil.getClass(p, "A");
52         Set<IMethod> methods = c.getMethods();
53         assertEquals(1, methods.size());
54     }
55 
56     @Test
testVisibilityMethods2()57     public void testVisibilityMethods2() throws IOException {
58         CompilationUnit src = new CompilationUnit("a.A",
59                 "package a;" +
60                 "public class A{" +
61                 "   public void foo1(){}" +
62                 "   protected void foo2(){}" +
63                 "   void foo3(){}" +
64                 "   private void foo4(){}" +
65                 "}");
66 
67         IApi api = convert(Visibility.PROTECTED, src);
68         IPackage p = ModelUtil.getPackage(api, "a");
69         IClassDefinition c = ModelUtil.getClass(p, "A");
70         Set<IMethod> methods = c.getMethods();
71         assertEquals(2, methods.size());
72     }
73 
74     @Test
testVisibilityMethods3()75     public void testVisibilityMethods3() throws IOException {
76         CompilationUnit src = new CompilationUnit("a.A",
77                 "package a;" +
78                 "public class A{" +
79                 "   public void foo1(){}" +
80                 "   protected void foo2(){}" +
81                 "   void foo3(){}" +
82                 "   private void foo4(){}" +
83                 "}");
84 
85         IApi api = convert(Visibility.PACKAGE, src);
86         IPackage p = ModelUtil.getPackage(api, "a");
87         IClassDefinition c = ModelUtil.getClass(p, "A");
88         Set<IMethod> methods = c.getMethods();
89         assertEquals(3, methods.size());
90     }
91 
92     @Test
testVisibilityMethods4()93     public void testVisibilityMethods4() throws IOException {
94         CompilationUnit src = new CompilationUnit("a.A",
95                 "package a;" +
96                 "public class A{" +
97                 "   public void foo1(){}" +
98                 "   protected void foo2(){}" +
99                 "   void foo3(){}" +
100                 "   private void foo4(){}" +
101                 "}");
102 
103         IApi api = convert(Visibility.PRIVATE, src);
104         IPackage p = ModelUtil.getPackage(api, "a");
105         IClassDefinition c = ModelUtil.getClass(p, "A");
106         Set<IMethod> methods = c.getMethods();
107         assertEquals(4, methods.size());
108     }
109 
110     @Test
testVisibility1()111     public void testVisibility1() throws IOException {
112         CompilationUnit src = new CompilationUnit("a.X1",
113                 "package a;" +
114                 "public class X1{" +
115                 "   static class X2{}" +
116                 "   protected static class X3{}" +
117                 "   private static class X4{}" +
118                 "}");
119 
120         IApi api = convert(Visibility.PUBLIC, src);
121         IPackage sigPackage = ModelUtil.getPackage(api, "a");
122         assertEquals(1, sigPackage.getClasses().size());
123     }
124 
125     @Test
testVisibility2()126     public void testVisibility2() throws IOException {
127         CompilationUnit src = new CompilationUnit("a.X1",
128                 "package a;" +
129                 "public class X1{" +
130                 "   static class X2{}" +
131                 "   protected static class X3{}" +
132                 "   private static class X4{}" +
133                 "}");
134 
135         IApi api = convert(Visibility.PROTECTED, src);
136         IPackage sigPackage = ModelUtil.getPackage(api, "a");
137         assertEquals(2, sigPackage.getClasses().size());
138         assertNotNull(ModelUtil.getClass(sigPackage, "X1.X3"));
139     }
140 
141     @Test
testVisibility3()142     public void testVisibility3() throws IOException {
143         CompilationUnit src = new CompilationUnit("a.X1",
144                 "package a;" +
145                 "public class X1{" +
146                 "   static class X2{}" +
147                 "   protected static class X3{}" +
148                 "   private static class X4{}" +
149                 "}");
150 
151         IApi api = convert(Visibility.PACKAGE, src);
152         IPackage sigPackage = ModelUtil.getPackage(api, "a");
153         assertEquals(3, sigPackage.getClasses().size());
154         assertNotNull(ModelUtil.getClass(sigPackage, "X1.X2"));
155     }
156 
157     @Test
testVisibility4()158     public void testVisibility4() throws IOException {
159         CompilationUnit src = new CompilationUnit("a.X1",
160                 "package a;" +
161                 "public class X1{" +
162                 "   static class X2{}" +
163                 "   protected static class X3{}" +
164                 "   private static class X4{}" +
165                 "}");
166 
167         IApi api = convert(Visibility.PRIVATE, src);
168         IPackage sigPackage = ModelUtil.getPackage(api, "a");
169         assertEquals(4, sigPackage.getClasses().size());
170         assertNotNull(ModelUtil.getClass(sigPackage, "X1.X4"));
171     }
172 
173 }