• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2019 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 com.android.protolog.tool
18 
19 import com.github.javaparser.StaticJavaParser
20 import com.github.javaparser.ast.expr.BinaryExpr
21 import com.github.javaparser.ast.expr.StringLiteralExpr
22 import org.junit.Assert.assertEquals
23 import org.junit.Assert.assertFalse
24 import org.junit.Assert.assertTrue
25 import org.junit.Test
26 
27 class CodeUtilsTest {
28     @Test
hashnull29     fun hash() {
30         assertEquals(-1259556708, CodeUtils.hash("Test.java:50", "test",
31                 LogLevel.DEBUG, LogGroup("test", true, true, "TAG")))
32     }
33 
34     @Test
hash_changeLocationnull35     fun hash_changeLocation() {
36         assertEquals(15793504, CodeUtils.hash("Test.java:10", "test2",
37                 LogLevel.DEBUG, LogGroup("test", true, true, "TAG")))
38     }
39 
40     @Test
hash_changeLevelnull41     fun hash_changeLevel() {
42         assertEquals(-731772463, CodeUtils.hash("Test.java:50", "test",
43                 LogLevel.ERROR, LogGroup("test", true, true, "TAG")))
44     }
45 
46     @Test
hash_changeMessagenull47     fun hash_changeMessage() {
48         assertEquals(-2026343204, CodeUtils.hash("Test.java:50", "test2",
49                 LogLevel.DEBUG, LogGroup("test", true, true, "TAG")))
50     }
51 
52     @Test
hash_changeGroupnull53     fun hash_changeGroup() {
54         assertEquals(1607870166, CodeUtils.hash("Test.java:50", "test2",
55                 LogLevel.DEBUG, LogGroup("test2", true, true, "TAG")))
56     }
57 
58     @Test(expected = IllegalImportException::class)
checkWildcardStaticImported_truenull59     fun checkWildcardStaticImported_true() {
60         val code = """package org.example.test;
61             import static org.example.Test.*;
62         """
63         CodeUtils.checkWildcardStaticImported(
64                 StaticJavaParser.parse(code), "org.example.Test", "")
65     }
66 
67     @Test
checkWildcardStaticImported_notStaticnull68     fun checkWildcardStaticImported_notStatic() {
69         val code = """package org.example.test;
70             import org.example.Test.*;
71         """
72         CodeUtils.checkWildcardStaticImported(
73                 StaticJavaParser.parse(code), "org.example.Test", "")
74     }
75 
76     @Test
checkWildcardStaticImported_differentClassnull77     fun checkWildcardStaticImported_differentClass() {
78         val code = """package org.example.test;
79             import static org.example.Test2.*;
80         """
81         CodeUtils.checkWildcardStaticImported(
82                 StaticJavaParser.parse(code), "org.example.Test", "")
83     }
84 
85     @Test
checkWildcardStaticImported_notWildcardnull86     fun checkWildcardStaticImported_notWildcard() {
87         val code = """package org.example.test;
88             import org.example.Test.test;
89         """
90         CodeUtils.checkWildcardStaticImported(
91                 StaticJavaParser.parse(code), "org.example.Test", "")
92     }
93 
94     @Test
isClassImportedOrSamePackage_importednull95     fun isClassImportedOrSamePackage_imported() {
96         val code = """package org.example.test;
97             import org.example.Test;
98         """
99         assertTrue(CodeUtils.isClassImportedOrSamePackage(
100                 StaticJavaParser.parse(code), "org.example.Test"))
101     }
102 
103     @Test
isClassImportedOrSamePackage_samePackagenull104     fun isClassImportedOrSamePackage_samePackage() {
105         val code = """package org.example.test;
106         """
107         assertTrue(CodeUtils.isClassImportedOrSamePackage(
108                 StaticJavaParser.parse(code), "org.example.test.Test"))
109     }
110 
111     @Test
isClassImportedOrSamePackage_falsenull112     fun isClassImportedOrSamePackage_false() {
113         val code = """package org.example.test;
114             import org.example.Test;
115         """
116         assertFalse(CodeUtils.isClassImportedOrSamePackage(
117                 StaticJavaParser.parse(code), "org.example.Test2"))
118     }
119 
120     @Test
staticallyImportedMethods_abnull121     fun staticallyImportedMethods_ab() {
122         val code = """
123             import static org.example.Test.a;
124             import static org.example.Test.b;
125         """
126         val imported = CodeUtils.staticallyImportedMethods(StaticJavaParser.parse(code),
127                 "org.example.Test")
128         assertTrue(imported.containsAll(listOf("a", "b")))
129         assertEquals(2, imported.size)
130     }
131 
132     @Test
staticallyImportedMethods_differentClassnull133     fun staticallyImportedMethods_differentClass() {
134         val code = """
135             import static org.example.Test.a;
136             import static org.example.Test2.b;
137         """
138         val imported = CodeUtils.staticallyImportedMethods(StaticJavaParser.parse(code),
139                 "org.example.Test")
140         assertTrue(imported.containsAll(listOf("a")))
141         assertEquals(1, imported.size)
142     }
143 
144     @Test
staticallyImportedMethods_notStaticnull145     fun staticallyImportedMethods_notStatic() {
146         val code = """
147             import static org.example.Test.a;
148             import org.example.Test.b;
149         """
150         val imported = CodeUtils.staticallyImportedMethods(StaticJavaParser.parse(code),
151                 "org.example.Test")
152         assertTrue(imported.containsAll(listOf("a")))
153         assertEquals(1, imported.size)
154     }
155 
156     @Test
concatMultilineString_singlenull157     fun concatMultilineString_single() {
158         val str = StringLiteralExpr("test")
159         val out = CodeUtils.concatMultilineString(str, ParsingContext())
160         assertEquals("test", out)
161     }
162 
163     @Test
concatMultilineString_doublenull164     fun concatMultilineString_double() {
165         val str = """
166             "test" + "abc"
167         """
168         val code = StaticJavaParser.parseExpression<BinaryExpr>(str)
169         val out = CodeUtils.concatMultilineString(code, ParsingContext())
170         assertEquals("testabc", out)
171     }
172 
173     @Test
concatMultilineString_multiplenull174     fun concatMultilineString_multiple() {
175         val str = """
176             "test" + "abc" + "1234" + "test"
177         """
178         val code = StaticJavaParser.parseExpression<BinaryExpr>(str)
179         val out = CodeUtils.concatMultilineString(code, ParsingContext())
180         assertEquals("testabc1234test", out)
181     }
182 }
183