1 /*
2  * Copyright (C) 2023 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.server.soundtrigger;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import androidx.test.runner.AndroidJUnit4;
22 
23 import com.android.server.soundtrigger.SoundTriggerEvent.ServiceEvent;
24 import com.android.server.soundtrigger.SoundTriggerEvent.SessionEvent;
25 
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 
29 import java.util.UUID;
30 
31 @RunWith(AndroidJUnit4.class)
32 public final class SoundTriggerEventTest {
33     private static final ServiceEvent.Type serviceEventType = ServiceEvent.Type.ATTACH;
34     private static final SessionEvent.Type sessionEventType = SessionEvent.Type.DETACH;
35 
36     @Test
serviceEventNoPackageNoError_getStringContainsType()37     public void serviceEventNoPackageNoError_getStringContainsType() {
38         final var event = new ServiceEvent(serviceEventType);
39         final var stringRep = event.eventToString();
40         assertThat(stringRep).contains(serviceEventType.name());
41         assertThat(stringRep).ignoringCase().doesNotContain("error");
42     }
43 
44     @Test
serviceEventPackageNoError_getStringContainsTypeAndPackage()45     public void serviceEventPackageNoError_getStringContainsTypeAndPackage() {
46         final var packageName = "com.android.package.name";
47         final var event = new ServiceEvent(serviceEventType, packageName);
48         final var stringRep = event.eventToString();
49         assertThat(stringRep).contains(serviceEventType.name());
50         assertThat(stringRep).contains(packageName);
51         assertThat(stringRep).ignoringCase().doesNotContain("error");
52     }
53 
54     @Test
serviceEventPackageError_getStringContainsTypeAndPackageAndErrorAndMessage()55     public void serviceEventPackageError_getStringContainsTypeAndPackageAndErrorAndMessage() {
56         final var packageName = "com.android.package.name";
57         final var errorString = "oh no an ERROR occurred";
58         final var event = new ServiceEvent(serviceEventType, packageName, errorString);
59         final var stringRep = event.eventToString();
60         assertThat(stringRep).contains(serviceEventType.name());
61         assertThat(stringRep).contains(packageName);
62         assertThat(stringRep).contains(errorString);
63         assertThat(stringRep).ignoringCase().contains("error");
64     }
65 
66     @Test
sessionEventUUIDNoError_getStringContainsUUID()67     public void sessionEventUUIDNoError_getStringContainsUUID() {
68         final var uuid = new UUID(5, -7);
69         final var event = new SessionEvent(sessionEventType, uuid);
70         final var stringRep = event.eventToString();
71         assertThat(stringRep).contains(sessionEventType.name());
72         assertThat(stringRep).contains(uuid.toString());
73         assertThat(stringRep).ignoringCase().doesNotContain("error");
74     }
75 
76     @Test
sessionEventUUIDError_getStringContainsUUIDAndError()77     public void sessionEventUUIDError_getStringContainsUUIDAndError() {
78         final var uuid = new UUID(5, -7);
79         final var errorString = "oh no an ERROR occurred";
80         final var event = new SessionEvent(sessionEventType, uuid, errorString);
81         final var stringRep = event.eventToString();
82         assertThat(stringRep).contains(sessionEventType.name());
83         assertThat(stringRep).contains(uuid.toString());
84         assertThat(stringRep).ignoringCase().contains("error");
85         assertThat(stringRep).contains(errorString);
86     }
87 }
88