### Question:
SpiContextDataProvider { public SpiContextData provide() { return provideWithPsuIdData(requestProviderService.getPsuIdData()); }  SpiContextData provide(); SpiContextData provideWithPsuIdData(PsuIdData psuIdData); SpiContextData provide(PsuIdData psuIdData, TppInfo tppInfo);  }### Answer:
@Test void provide_success() { when(tppService.getTppInfo()) .thenReturn(TPP_INFO); SpiContextData actualResponse = spiContextDataProvider.provide(); assertThat(actualResponse).isNotNull(); assertThat(actualResponse).isEqualTo(SPI_CONTEXT_DATA); }
@Test void provide_withParameters_success() { when(psuDataMapper.mapToSpiPsuData(PSU_DATA)) .thenReturn(SPI_PSU_DATA); SpiContextData actualResponse = spiContextDataProvider.provide(PSU_DATA, TPP_INFO); assertThat(actualResponse).isNotNull(); assertThat(actualResponse).isEqualTo(SPI_CONTEXT_DATA_WITH_PSU_DATA); }
@Test void provide_withPsuIpAddress_success() { when(psuDataMapper.mapToSpiPsuData(PSU_DATA)) .thenReturn(SPI_PSU_DATA); SpiContextData actualResponse = spiContextDataProvider.provide(PSU_DATA, TPP_INFO); assertThat(actualResponse).isNotNull(); assertThat(actualResponse.getPsuData()).isEqualTo(SPI_PSU_DATA); }