• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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.mediaroutertest;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import android.media.RoutingSessionInfo;
22 
23 import androidx.test.ext.junit.runners.AndroidJUnit4;
24 import androidx.test.filters.SmallTest;
25 
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 
29 /**
30  * Tests {@link RoutingSessionInfo} and its {@link RoutingSessionInfo.Builder builder}.
31  */
32 @RunWith(AndroidJUnit4.class)
33 @SmallTest
34 public class RoutingSessionInfoTest {
35     public static final String TEST_ID = "test_id";
36     public static final String TEST_CLIENT_PACKAGE_NAME = "com.test.client.package.name";
37     public static final String TEST_NAME = "test_name";
38 
39     public static final String TEST_ROUTE_ID_0 = "test_route_type_0";
40     public static final String TEST_ROUTE_ID_2 = "test_route_type_2";
41     public static final String TEST_ROUTE_ID_4 = "test_route_type_4";
42     public static final String TEST_ROUTE_ID_6 = "test_route_type_6";
43 
44     public static final String TEST_PROVIDER_ID = "test_provider_id";
45     public static final String TEST_OTHER_PROVIDER_ID = "test_other_provider_id";
46 
47     // Tests if route IDs are changed properly according to provider ID.
48     @Test
testProviderId()49     public void testProviderId() {
50         RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
51                 TEST_ID, TEST_CLIENT_PACKAGE_NAME)
52                 .setName(TEST_NAME)
53                 .addSelectedRoute(TEST_ROUTE_ID_0)
54                 .addSelectableRoute(TEST_ROUTE_ID_2)
55                 .addDeselectableRoute(TEST_ROUTE_ID_4)
56                 .addTransferableRoute(TEST_ROUTE_ID_6)
57                 .build();
58 
59         RoutingSessionInfo sessionInfoWithProviderId = new RoutingSessionInfo.Builder(sessionInfo)
60                 .setProviderId(TEST_PROVIDER_ID).build();
61 
62         assertThat(sessionInfoWithProviderId.getSelectedRoutes())
63                 .isNotEqualTo(sessionInfo.getSelectedRoutes());
64         assertThat(sessionInfoWithProviderId.getSelectableRoutes())
65                 .isNotEqualTo(sessionInfo.getSelectableRoutes());
66         assertThat(sessionInfoWithProviderId.getDeselectableRoutes())
67                 .isNotEqualTo(sessionInfo.getDeselectableRoutes());
68         assertThat(sessionInfoWithProviderId.getTransferableRoutes())
69                 .isNotEqualTo(sessionInfo.getTransferableRoutes());
70 
71         RoutingSessionInfo sessionInfoWithOtherProviderId =
72                 new RoutingSessionInfo.Builder(sessionInfoWithProviderId)
73                         .setProviderId(TEST_OTHER_PROVIDER_ID).build();
74 
75         assertThat(sessionInfoWithOtherProviderId.getSelectedRoutes())
76                 .isNotEqualTo(sessionInfoWithProviderId.getSelectedRoutes());
77         assertThat(sessionInfoWithOtherProviderId.getSelectableRoutes())
78                 .isNotEqualTo(sessionInfoWithProviderId.getSelectableRoutes());
79         assertThat(sessionInfoWithOtherProviderId.getDeselectableRoutes())
80                 .isNotEqualTo(sessionInfoWithProviderId.getDeselectableRoutes());
81         assertThat(sessionInfoWithOtherProviderId.getTransferableRoutes())
82                 .isNotEqualTo(sessionInfoWithProviderId.getTransferableRoutes());
83 
84         RoutingSessionInfo sessionInfoWithProviderId2 =
85                 new RoutingSessionInfo.Builder(sessionInfoWithProviderId).build();
86 
87         assertThat(sessionInfoWithProviderId2.getSelectedRoutes())
88                 .isEqualTo(sessionInfoWithProviderId.getSelectedRoutes());
89         assertThat(sessionInfoWithProviderId2.getSelectableRoutes())
90                 .isEqualTo(sessionInfoWithProviderId.getSelectableRoutes());
91         assertThat(sessionInfoWithProviderId2.getDeselectableRoutes())
92                 .isEqualTo(sessionInfoWithProviderId.getDeselectableRoutes());
93         assertThat(sessionInfoWithProviderId2.getTransferableRoutes())
94                 .isEqualTo(sessionInfoWithProviderId.getTransferableRoutes());
95     }
96 }
97