Re-add unit tests for RTP Transport wiring.

Adding communicator unit tests.

Test: Adding in new unit tests.
Bug: 163085177
Change-Id: I1f84d9e7c74acb3eaa2af9d5da526cfa3c0a03a0
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
index 94c9063..5c3c913 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
@@ -5,16 +5,74 @@
 import static junit.framework.Assert.fail;
 import static junit.framework.TestCase.assertFalse;
 
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+
 import android.os.Bundle;
 import android.telecom.Connection;
+import android.telephony.ims.RtpHeaderExtension;
 
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.internal.telephony.Call;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.phone.R;
+
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Set;
 
 @RunWith(AndroidJUnit4.class)
 public class TelephonyConnectionTest {
+    @Mock
+    private ImsPhoneConnection mImsPhoneConnection;
+    @Captor
+    private ArgumentCaptor<Set<RtpHeaderExtension>> mRtpHeaderExtensionCaptor;
+
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        when(mImsPhoneConnection.getState()).thenReturn(Call.State.ACTIVE);
+        when(mImsPhoneConnection.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
+    }
+
+    /**
+     * Ensures an Ims connection uses the D2D communicator when it is enabled.
+     */
+    @Test
+    public void testSetupCommunicator() {
+        TestTelephonyConnection c = new TestTelephonyConnection();
+        c.setIsImsConnection(true);
+        // Enable D2D comms.
+        when(c.mMockResources.getBoolean(eq(
+                R.bool.config_use_device_to_device_communication))).thenReturn(true);
+
+        c.setOriginalConnection(mImsPhoneConnection);
+        junit.framework.Assert.assertNotNull(c.getCommunicator());
+    }
+
+    /**
+     * Ensures an Ims connection does not use the D2D communicator when it is disabled.
+     */
+    @Test
+    public void testDoNotSetupCommunicator() {
+        TestTelephonyConnection c = new TestTelephonyConnection();
+        c.setIsImsConnection(true);
+        // Disable D2D comms.
+        when(c.mMockResources.getBoolean(eq(
+                R.bool.config_use_device_to_device_communication))).thenReturn(false);
+
+        c.setOriginalConnection(mImsPhoneConnection);
+        junit.framework.Assert.assertNull(c.getCommunicator());
+    }
 
     @Test
     public void testCodecInIms() {