Skip to content

Commit 079d919

Browse files
Add more unit tests for DISPLAYS capability
1 parent 49d2009 commit 079d919

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,41 @@ public void testAddOnSystemCapabilityListenerThenGetCapability() {
578578
verify(onSystemCapabilityListener3, times(4)).onCapabilityRetrieved(any(Object.class));
579579
}
580580

581+
public void testGetAndAddListenerForDisplaysCapability() {
582+
ISdl internalInterface;
583+
SystemCapabilityManager scm;
584+
OnSystemCapabilityListener onSystemCapabilityListener;
585+
DisplayCapabilities retrievedCapability;
586+
587+
588+
// Test case 1 (capability cached, listener not null, forceUpdate true)
589+
// Force updating DISPLAYS capability should call onError()
590+
internalInterface = mock(ISdl.class);
591+
scm = new SystemCapabilityManager(internalInterface);
592+
onSystemCapabilityListener = mock(OnSystemCapabilityListener.class);
593+
doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class));
594+
scm.setCapability(SystemCapabilityType.DISPLAYS, new DisplayCapabilities());
595+
retrievedCapability = (DisplayCapabilities) scm.getCapability(SystemCapabilityType.DISPLAYS, onSystemCapabilityListener, true);
596+
assertNotNull(retrievedCapability);
597+
verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class));
598+
verify(onSystemCapabilityListener, times(0)).onCapabilityRetrieved(any(Object.class));
599+
verify(onSystemCapabilityListener, times(1)).onError(any(String.class));
600+
601+
602+
// Test case 2 (Add listener)
603+
// When the first DISPLAYS listener is added, GetSystemCapability request should not go out
604+
OnSystemCapabilityListener onSystemCapabilityListener1 = mock(OnSystemCapabilityListener.class);
605+
scm.addOnSystemCapabilityListener(SystemCapabilityType.DISPLAYS, onSystemCapabilityListener1);
606+
verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class));
607+
verify(onSystemCapabilityListener1, times(1)).onCapabilityRetrieved(any(Object.class));
608+
609+
610+
// Test case 3 (Remove listener)
611+
// When the last DISPLAY listener is removed, GetSystemCapability request should not go out
612+
scm.removeOnSystemCapabilityListener(SystemCapabilityType.DISPLAYS, onSystemCapabilityListener1);
613+
verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class));
614+
}
615+
581616
public void testListConversion(){
582617
SystemCapabilityManager systemCapabilityManager = createSampleManager();
583618
Object capability = systemCapabilityManager.getCapability(SystemCapabilityType.SOFTBUTTON);

0 commit comments

Comments
 (0)