@@ -13,6 +13,9 @@ import com.hedvig.android.apollo.octopus.test.OctopusFakeResolver
1313import com.hedvig.android.apollo.test.TestApolloClientRule
1414import com.hedvig.android.core.common.test.isLeft
1515import com.hedvig.android.core.common.test.isRight
16+ import com.hedvig.android.feature.travelcertificate.data.GetTravelCertificateSpecificationsUseCaseImpl
17+ import com.hedvig.android.feature.travelcertificate.data.TravelCertificateData
18+ import com.hedvig.android.feature.travelcertificate.data.TravelCertificateError
1619import com.hedvig.android.logger.TestLogcatLoggingRule
1720import kotlinx.coroutines.test.runTest
1821import kotlinx.datetime.LocalDate
@@ -39,7 +42,7 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
3942 @Test
4043 fun `when the feature flag is on and the network request fails, we get not Error response` () = runTest {
4144 val travelCertificateUseCase =
42- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
45+ GetTravelCertificateSpecificationsUseCaseImpl (
4346 apolloClient,
4447 )
4548
@@ -48,14 +51,14 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
4851
4952 assertThat(
5053 result,
51- ).isLeft().isInstanceOf< com.hedvig.android.feature.travelcertificate.data. TravelCertificateError .Error > ()
54+ ).isLeft().isInstanceOf<TravelCertificateError .Error >()
5255 }
5356
5457 @Test
5558 fun `when the feature flag is on and the network response contains no travel certificate, we get not eligible` () =
5659 runTest {
5760 val travelCertificateUseCase =
58- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
61+ GetTravelCertificateSpecificationsUseCaseImpl (
5962 apolloClient,
6063 )
6164
@@ -67,13 +70,13 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
6770
6871 assertThat(
6972 result,
70- ).isLeft().isInstanceOf< com.hedvig.android.feature.travelcertificate.data. TravelCertificateError .NotEligible > ()
73+ ).isLeft().isInstanceOf<TravelCertificateError .NotEligible >()
7174 }
7275
7376 @Test
7477 fun `when the passed contractId is wrong, we get not eligible` () = runTest {
7578 val travelCertificateUseCase =
76- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
79+ GetTravelCertificateSpecificationsUseCaseImpl (
7780 apolloClient,
7881 )
7982
@@ -85,13 +88,13 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
8588
8689 assertThat(
8790 result,
88- ).isLeft().isInstanceOf< com.hedvig.android.feature.travelcertificate.data. TravelCertificateError .NotEligible > ()
91+ ).isLeft().isInstanceOf<TravelCertificateError .NotEligible >()
8992 }
9093
9194 @Test
9295 fun `when the passed contractId is right, we get TravelCertificateData` () = runTest {
9396 val travelCertificateUseCase =
94- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
97+ GetTravelCertificateSpecificationsUseCaseImpl (
9598 apolloClient,
9699 )
97100
@@ -103,7 +106,6 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
103106 contractSpecifications = listOf (
104107 buildTravelCertificateContractSpecification {
105108 contractId = " id"
106- email = " email"
107109 minStartDate = LocalDate .parse(" 2023-02-02" )
108110 maxStartDate = LocalDate .parse(" 2023-03-02" )
109111 maxDurationDays = 1
@@ -117,8 +119,8 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
117119 val result = travelCertificateUseCase.invoke(" id" )
118120
119121 assertThat(result).isRight().isEqualTo(
120- com.hedvig.android.feature.travelcertificate.data. TravelCertificateData (
121- com.hedvig.android.feature.travelcertificate.data. TravelCertificateData .TravelCertificateSpecification (
122+ TravelCertificateData (
123+ TravelCertificateData .TravelCertificateSpecification (
122124 contractId = " id" ,
123125 email = " email" ,
124126 maxDurationDays = 1 ,
@@ -132,7 +134,7 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
132134 @Test
133135 fun `when the passed contractId is correct, but the contract is not eligible, we get not eligible` () = runTest {
134136 val travelCertificateUseCase =
135- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
137+ GetTravelCertificateSpecificationsUseCaseImpl (
136138 apolloClient,
137139 )
138140
@@ -144,7 +146,6 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
144146 contractSpecifications = listOf (
145147 buildTravelCertificateContractSpecification {
146148 contractId = " id"
147- email = " email"
148149 minStartDate = LocalDate .parse(" 2023-02-02" )
149150 maxStartDate = LocalDate .parse(" 2023-03-02" )
150151 maxDurationDays = 1
@@ -159,33 +160,33 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
159160
160161 assertThat(
161162 result,
162- ).isLeft().isInstanceOf< com.hedvig.android.feature.travelcertificate.data. TravelCertificateError .NotEligible > ()
163+ ).isLeft().isInstanceOf<TravelCertificateError .NotEligible >()
163164 }
164165
165166 @Test
166167 fun `when the feature flag is on and the network request succeeds, the response depends on the active contract travel certificate eligibility` (
167168 @TestParameter contractSupportsTravelCertificate : Boolean ,
168169 ) = runTest {
169170 val travelCertificateUseCase =
170- com.hedvig.android.feature.travelcertificate.data. GetTravelCertificateSpecificationsUseCaseImpl (
171+ GetTravelCertificateSpecificationsUseCaseImpl (
171172 apolloClient,
172173 )
173174
175+ val contractId = " contractId"
174176 apolloClient.enqueueTestResponse(
175177 TravelCertificateSpecificationsQuery (),
176178 TravelCertificateSpecificationsQuery .Data (OctopusFakeResolver ) {
177179 currentMember = buildMember {
180+ activeContracts = listOf (
181+ buildContract {
182+ this .id = if (contractSupportsTravelCertificate) contractId else " non-matching ID"
183+ this .supportsTravelCertificate = true
184+ },
185+ )
178186 travelCertificateSpecifications = buildTravelCertificateSpecification {
179- activeContracts = listOf (
180- buildContract {
181- id = " contractId"
182- supportsTravelCertificate = contractSupportsTravelCertificate
183- },
184- )
185187 contractSpecifications = listOf (
186188 buildTravelCertificateContractSpecification {
187- contractId = " contractId"
188- email = " email"
189+ this .contractId = contractId
189190 minStartDate = LocalDate .parse(" 2023-02-02" )
190191 maxStartDate = LocalDate .parse(" 2023-03-02" )
191192 maxDurationDays = 1
@@ -200,9 +201,9 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
200201
201202 if (contractSupportsTravelCertificate) {
202203 assertThat(result).isRight().isEqualTo(
203- com.hedvig.android.feature.travelcertificate.data. TravelCertificateData (
204- com.hedvig.android.feature.travelcertificate.data. TravelCertificateData .TravelCertificateSpecification (
205- contractId = " contractId" ,
204+ TravelCertificateData (
205+ TravelCertificateData .TravelCertificateSpecification (
206+ contractId = contractId,
206207 email = " email" ,
207208 maxDurationDays = 1 ,
208209 dateRange = LocalDate .parse(" 2023-02-02" ).. LocalDate .parse(" 2023-03-02" ),
@@ -213,7 +214,7 @@ internal class GetTravelCertificateSpecificationsUseCaseTest {
213214 } else {
214215 assertThat(
215216 result,
216- ).isLeft().isInstanceOf< com.hedvig.android.feature.travelcertificate.data. TravelCertificateError .NotEligible > ()
217+ ).isLeft().isInstanceOf<TravelCertificateError .NotEligible >()
217218 }
218219 }
219220}
0 commit comments