### Question:
IovisorResolvedEndpointListener extends DataTreeChangeHandler<IovisorResolvedEndpointsByTenantByEndpointgroupId> { @Override protected void onSubtreeModified(DataObjectModification<IovisorResolvedEndpointsByTenantByEndpointgroupId> rootNode, InstanceIdentifier<IovisorResolvedEndpointsByTenantByEndpointgroupId> rootIdentifier) { for (IovisorResolvedEndpointByTenantByEndpointgroupId element : rootNode.getDataAfter() .getIovisorResolvedEndpointByTenantByEndpointgroupId()) { endpointPolicyUpdated(element.getTenantId(), element.getEndpointgroupId(), this.dataProvider.newWriteOnlyTransaction()); } } protected  IovisorResolvedEndpointListener(DataBroker dataprovider);   }### Answer:
@Test public void testOnSubtreeModified() { when(rootNode.getModificationType()).thenReturn(DataObjectModification.ModificationType.SUBTREE_MODIFIED); iovisorResolvedEndpointListener.onDataTreeChanged(changes); verify(iovisorResolvedEndpointListener).endpointPolicyUpdated(any(TenantId.class), any(EndpointGroupId.class), any(WriteTransaction.class)); }