diff options
Diffstat (limited to 'tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java')
-rw-r--r-- | tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java b/tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java index 137b4ac7..bcd3c98d 100644 --- a/tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java +++ b/tests/src/com/android/ims/rcs/uce/request/SubscribeCoordinatorTest.java @@ -39,6 +39,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.net.Uri; +import android.telephony.ims.RcsContactPresenceTuple; import android.telephony.ims.RcsContactUceCapability; import android.telephony.ims.aidl.IRcsUceControllerCallback; @@ -47,6 +48,7 @@ import androidx.test.filters.SmallTest; import com.android.ims.ImsTestBase; import com.android.ims.rcs.uce.UceDeviceState.DeviceStateResult; +import com.android.ims.rcs.uce.UceStatsWriter; import com.android.ims.rcs.uce.request.UceRequestCoordinator.RequestResult; import com.android.ims.rcs.uce.request.UceRequestManager.RequestManagerCallback; @@ -70,6 +72,7 @@ public class SubscribeCoordinatorTest extends ImsTestBase { @Mock RequestManagerCallback mRequestMgrCallback; @Mock IRcsUceControllerCallback mUceCallback; @Mock DeviceStateResult mDeviceStateResult; + @Mock UceStatsWriter mUceStatsWriter; private int mSubId = 1; private long mTaskId = 1L; @@ -106,6 +109,7 @@ public class SubscribeCoordinatorTest extends ImsTestBase { @Test @SmallTest public void testRequestCommandError() throws Exception { + doReturn(Optional.of(3)).when(mResponse).getCommandError(); SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); coordinator.onRequestUpdated(mTaskId, REQUEST_UPDATE_COMMAND_ERROR); @@ -114,6 +118,9 @@ public class SubscribeCoordinatorTest extends ImsTestBase { Collection<RequestResult> resultList = coordinator.getFinishedRequest(); assertTrue(requestList.isEmpty()); assertEquals(1, resultList.size()); + + verify(mUceStatsWriter).setUceEvent(eq(mSubId), eq(UceStatsWriter.SUBSCRIBE_EVENT), + eq(false), eq(3), eq(0)); verify(mRequest).onFinish(); } @@ -122,6 +129,7 @@ public class SubscribeCoordinatorTest extends ImsTestBase { public void testRequestNetworkRespSuccess() throws Exception { SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); doReturn(true).when(mResponse).isNetworkResponseOK(); + doReturn(Optional.of(200)).when(mResponse).getNetworkRespSipCode(); coordinator.onRequestUpdated(mTaskId, REQUEST_UPDATE_NETWORK_RESPONSE); @@ -129,11 +137,28 @@ public class SubscribeCoordinatorTest extends ImsTestBase { Collection<RequestResult> resultList = coordinator.getFinishedRequest(); assertEquals(1, requestList.size()); assertTrue(resultList.isEmpty()); + + verify(mUceStatsWriter).setSubscribeResponse(eq(mSubId), eq(mTaskId), eq(200)); + verify(mRequest, never()).onFinish(); } @Test @SmallTest + public void testRequestNetworkRespFailure() throws Exception { + doReturn(Optional.of(400)).when(mResponse).getNetworkRespSipCode(); + + SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); + + coordinator.onRequestUpdated(mTaskId, REQUEST_UPDATE_NETWORK_RESPONSE); + + verify(mUceStatsWriter).setSubscribeResponse(eq(mSubId), eq(mTaskId), eq(400)); + + verify(mRequest).onFinish(); + } + + @Test + @SmallTest public void testRequestNetworkRespError() throws Exception { SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); doReturn(false).when(mResponse).isNetworkResponseOK(); @@ -162,7 +187,8 @@ public class SubscribeCoordinatorTest extends ImsTestBase { SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); final List<RcsContactUceCapability> updatedCapList = new ArrayList<>(); - RcsContactUceCapability updatedCapability = getContactUceCapability(); + RcsContactPresenceTuple tuple = getContactPresenceTuple(); + RcsContactUceCapability updatedCapability = getContactUceCapability(tuple); updatedCapList.add(updatedCapability); doReturn(updatedCapList).when(mResponse).getUpdatedContactCapability(); @@ -171,6 +197,8 @@ public class SubscribeCoordinatorTest extends ImsTestBase { verify(mRequestMgrCallback).saveCapabilities(updatedCapList); verify(mUceCallback).onCapabilitiesReceived(updatedCapList); verify(mResponse).removeUpdatedCapabilities(updatedCapList); + + verify(mUceStatsWriter).setPresenceNotifyEvent(eq(mSubId), eq(mTaskId), any()); } @Test @@ -188,6 +216,8 @@ public class SubscribeCoordinatorTest extends ImsTestBase { verify(mRequestMgrCallback).saveCapabilities(updatedCapList); verify(mUceCallback).onCapabilitiesReceived(updatedCapList); verify(mResponse).removeTerminatedResources(updatedCapList); + + verify(mUceStatsWriter).setPresenceNotifyEvent(eq(mSubId), eq(mTaskId), any()); } @Test @@ -211,12 +241,16 @@ public class SubscribeCoordinatorTest extends ImsTestBase { public void testRequestTerminated() throws Exception { SubscribeRequestCoordinator coordinator = getSubscribeCoordinator(); + doReturn("noresource").when(mResponse).getTerminatedReason(); + coordinator.onRequestUpdated(mTaskId, REQUEST_UPDATE_TERMINATED); Collection<UceRequest> requestList = coordinator.getActivatedRequest(); Collection<RequestResult> resultList = coordinator.getFinishedRequest(); assertTrue(requestList.isEmpty()); assertEquals(1, resultList.size()); + + verify(mUceStatsWriter).setSubscribeTerminated(eq(mSubId), eq(mTaskId), eq("noresource")); } @Test @@ -234,8 +268,18 @@ public class SubscribeCoordinatorTest extends ImsTestBase { private SubscribeRequestCoordinator getSubscribeCoordinator() { SubscribeRequestCoordinator.Builder builder = new SubscribeRequestCoordinator.Builder( - mSubId, Collections.singletonList(mRequest), mRequestMgrCallback); + mSubId, Collections.singletonList(mRequest), mRequestMgrCallback, mUceStatsWriter); builder.setCapabilitiesCallback(mUceCallback); + SubscribeRequestCoordinator subCoor = builder.build(); + return subCoor; + } + + private RcsContactUceCapability getContactUceCapability(RcsContactPresenceTuple tuple) { + int requestResult = RcsContactUceCapability.REQUEST_RESULT_FOUND; + RcsContactUceCapability.PresenceBuilder builder = + new RcsContactUceCapability.PresenceBuilder( + mContact, RcsContactUceCapability.SOURCE_TYPE_NETWORK, requestResult); + builder.addCapabilityTuple(tuple); return builder.build(); } @@ -246,4 +290,12 @@ public class SubscribeCoordinatorTest extends ImsTestBase { mContact, RcsContactUceCapability.SOURCE_TYPE_NETWORK, requestResult); return builder.build(); } + + private RcsContactPresenceTuple getContactPresenceTuple() { + RcsContactPresenceTuple.Builder builder = + new RcsContactPresenceTuple.Builder("open", RcsContactPresenceTuple.SERVICE_ID_CHAT_V1, + "1.0"); + return builder.build(); + + } } |