### Question:
MonitoredOperations implements SessionOperations { @Override public void setProperty(Session session, String name, String value) throws SessionException { final long start = System.nanoTime(); sessionOperations.setProperty(session, name, value); sessionMonitoringStore.storeSetPropertyTime(System.nanoTime() - start, monitorType); } MonitoredOperations(SessionOperations sessionOperations, SessionMonitorType monitorType,
                               SessionMonitoringStore sessionMonitoringStore); @Override SessionInfo refresh(Session session, boolean reset); @Override void logout(Session session); @Override void destroy(Session requester, Session session); @Override void setProperty(Session session, String name, String value); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void setPropertyTest() throws SessionException { Session mockSession = mock(Session.class); String name = "name"; String value = "value"; testMoniteredOperations.setProperty(mockSession, name, value); verify(mockSessionOperations, times(1)).setProperty(mockSession, name, value); verify(mockStore).storeSetPropertyTime(anyLong(), any(SessionMonitorType.class)); }