| /* |
| * Copyright (C) 2023 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.net |
| |
| import android.os.Build |
| import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo |
| import com.android.testutils.DevSdkIgnoreRunner |
| |
| import org.junit.Test |
| import org.junit.runner.RunWith |
| import java.net.Inet6Address |
| import kotlin.test.assertFalse |
| import kotlin.test.assertTrue |
| |
| import android.net.MulticastRoutingConfig.Builder |
| import android.net.MulticastRoutingConfig.FORWARD_NONE |
| import android.net.MulticastRoutingConfig.FORWARD_SELECTED |
| import android.net.MulticastRoutingConfig.FORWARD_WITH_MIN_SCOPE |
| |
| @RunWith(DevSdkIgnoreRunner::class) |
| @IgnoreUpTo(Build.VERSION_CODES.TIRAMISU) |
| class MulticastRoutingConfigTest { |
| |
| val address1 = Inet6Address.getByName("2000::8888") as Inet6Address |
| val address2 = Inet6Address.getByName("2000::9999") as Inet6Address |
| |
| private fun configNone() = Builder(FORWARD_NONE).build() |
| private fun configMinScope(scope: Int) = Builder(FORWARD_WITH_MIN_SCOPE, scope).build() |
| private fun configSelected() = Builder(FORWARD_SELECTED).build() |
| private fun configSelectedWithAddress1AndAddress2() = |
| Builder(FORWARD_SELECTED).addListeningAddress(address1) |
| .addListeningAddress(address2).build() |
| private fun configSelectedWithAddress2AndAddress1() = |
| Builder(FORWARD_SELECTED).addListeningAddress(address2) |
| .addListeningAddress(address1).build() |
| |
| @Test |
| fun equalityTests() { |
| |
| assertTrue(configNone().equals(configNone())) |
| |
| assertTrue(configSelected().equals(configSelected())) |
| |
| assertTrue(configMinScope(4).equals(configMinScope(4))) |
| |
| assertTrue(configSelectedWithAddress1AndAddress2() |
| .equals(configSelectedWithAddress2AndAddress1())) |
| } |
| |
| @Test |
| fun inequalityTests() { |
| |
| assertFalse(configNone().equals(configSelected())) |
| |
| assertFalse(configNone().equals(configMinScope(4))) |
| |
| assertFalse(configSelected().equals(configMinScope(4))) |
| |
| assertFalse(configMinScope(4).equals(configMinScope(5))) |
| |
| assertFalse(configSelected().equals(configSelectedWithAddress1AndAddress2())) |
| } |
| |
| @Test |
| fun toString_equalObjects_returnsEqualStrings() { |
| val config1 = configSelectedWithAddress1AndAddress2() |
| val config2 = configSelectedWithAddress2AndAddress1() |
| |
| val str1 = config1.toString() |
| val str2 = config2.toString() |
| |
| assertTrue(str1.equals(str2)) |
| } |
| |
| @Test |
| fun toString_unequalObjects_returnsUnequalStrings() { |
| val config1 = configSelected() |
| val config2 = configSelectedWithAddress1AndAddress2() |
| |
| val str1 = config1.toString() |
| val str2 = config2.toString() |
| |
| assertFalse(str1.equals(str2)) |
| } |
| } |