Skip to content

Commit ae7ea20

Browse files
committed
Parameterize test to show behaviour diff
1 parent c3201fb commit ae7ea20

2 files changed

Lines changed: 72 additions & 34 deletions

File tree

  • datamodel
    • odata-v4/odata-v4-generator/src/test/java/com/sap/cloud/sdk/datamodel/odatav4/generator
    • odata/odata-generator/src/test/java/com/sap/cloud/sdk/datamodel/odata/generator

datamodel/odata-v4/odata-v4-generator/src/test/java/com/sap/cloud/sdk/datamodel/odatav4/generator/EdmServiceTest.java

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,65 @@
66

77
import java.util.List;
88
import java.util.Optional;
9+
import java.util.stream.Stream;
10+
11+
import javax.annotation.Nonnull;
912

1013
import org.apache.olingo.commons.api.edm.Edm;
1114
import org.apache.olingo.commons.api.edm.EdmEntityContainer;
1215
import org.apache.olingo.commons.api.edm.EdmSchema;
13-
import org.junit.jupiter.api.Test;
16+
import org.junit.jupiter.params.ParameterizedTest;
17+
import org.junit.jupiter.params.provider.Arguments;
18+
import org.junit.jupiter.params.provider.MethodSource;
1419

1520
import com.google.common.collect.ArrayListMultimap;
1621
import com.sap.cloud.sdk.datamodel.odata.utility.ServiceNameMappings;
1722

1823
class EdmServiceTest
1924
{
20-
private static final String SERVICE_NAME = "API_MATERIAL_DOCUMENT_SRV";
2125

22-
@Test
23-
void testServiceNameMappingsGenerated()
26+
@ParameterizedTest
27+
@MethodSource( "getServiceNameMappingScenarios" )
28+
void testServiceNameMappingsGenerated(
29+
@Nonnull final String serviceName,
30+
@Nonnull final String expectedPackageName,
31+
@Nonnull final String expectedClassName )
2432
{
2533

2634
// Mock ServiceNameMappings to return empty Optional (no stored mappings)
2735
final ServiceNameMappings mockMappings = mock(ServiceNameMappings.class);
28-
doReturn(Optional.empty()).when(mockMappings).getString(SERVICE_NAME + ".packageName");
29-
doReturn(Optional.empty()).when(mockMappings).getString(SERVICE_NAME + ".className");
36+
doReturn(Optional.empty()).when(mockMappings).getString(serviceName + ".packageName");
37+
doReturn(Optional.empty()).when(mockMappings).getString(serviceName + ".className");
3038

3139
final EdmService service =
3240
new EdmService(
33-
SERVICE_NAME,
41+
serviceName,
3442
mockMappings,
3543
createMockEdm(),
3644
mock(ServiceDetails.class),
3745
ArrayListMultimap.create(),
3846
false);
3947

40-
assertThat(service.getJavaPackageName()).isEqualTo("apimaterialdocumentsrv");
41-
assertThat(service.getJavaClassName()).isEqualTo("APIMATERIALDOCUMENTSRV");
48+
assertThat(service.getJavaPackageName()).isEqualTo(expectedPackageName);
49+
assertThat(service.getJavaClassName()).isEqualTo(expectedClassName);
4250
}
4351

44-
@Test
45-
void testStoredServiceNameMappingsAreUnchanged()
52+
@ParameterizedTest
53+
@MethodSource( "getServiceNameMappingScenarios" )
54+
void testStoredServiceNameMappingsAreUnchanged(
55+
@Nonnull final String serviceName,
56+
@Nonnull final String expectedPackageName,
57+
@Nonnull final String expectedClassName )
4658
{
47-
final String expectedPackageName = "apimaterialdocumentsrv";
48-
final String expectedClassName = "APIMATERIALDOCUMENTSRV";
4959

5060
// Mock ServiceNameMappings to return stored mappings
5161
final ServiceNameMappings mockMappings = mock(ServiceNameMappings.class);
52-
doReturn(Optional.of(expectedPackageName)).when(mockMappings).getString(SERVICE_NAME + ".packageName");
53-
doReturn(Optional.of(expectedClassName)).when(mockMappings).getString(SERVICE_NAME + ".className");
62+
doReturn(Optional.of(expectedPackageName)).when(mockMappings).getString(serviceName + ".packageName");
63+
doReturn(Optional.of(expectedClassName)).when(mockMappings).getString(serviceName + ".className");
5464

5565
final EdmService service =
5666
new EdmService(
57-
SERVICE_NAME,
67+
serviceName,
5868
mockMappings,
5969
createMockEdm(),
6070
mock(ServiceDetails.class),
@@ -74,4 +84,14 @@ private static Edm createMockEdm()
7484
doReturn(List.of(mockSchema)).when(mockEdm).getSchemas();
7585
return mockEdm;
7686
}
87+
88+
private static Stream<Arguments> getServiceNameMappingScenarios()
89+
{
90+
return Stream
91+
.of(
92+
// Non-breaking fix for https://github.com/SAP/cloud-sdk-java/issues/1024
93+
Arguments.of("API_MATERIAL_DOCUMENT_SRV", "apimaterialdocumentsrv", "APIMATERIALDOCUMENTSRV"),
94+
Arguments.of("Product_Api_Service", "product", "Product" // "Api" and "Service" removed
95+
));
96+
}
7797
}

datamodel/odata/odata-generator/src/test/java/com/sap/cloud/sdk/datamodel/odata/generator/EdmServiceTest.java

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,62 @@
55
import static org.mockito.Mockito.mock;
66

77
import java.util.Optional;
8+
import java.util.stream.Stream;
9+
10+
import javax.annotation.Nonnull;
811

912
import org.apache.olingo.odata2.api.edm.Edm;
10-
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.params.ParameterizedTest;
14+
import org.junit.jupiter.params.provider.Arguments;
15+
import org.junit.jupiter.params.provider.MethodSource;
1116

1217
import com.google.common.collect.ArrayListMultimap;
1318
import com.sap.cloud.sdk.datamodel.odata.utility.ServiceNameMappings;
1419

1520
class EdmServiceTest
1621
{
1722

18-
private static final String SERVICE_NAME = "API_MATERIAL_DOCUMENT_SRV";
19-
20-
@Test
21-
void testServiceNameMappingsGenerated()
23+
@ParameterizedTest
24+
@MethodSource( "getServiceNameMappingScenarios" )
25+
void testServiceNameMappingsGenerated(
26+
@Nonnull final String serviceName,
27+
@Nonnull final String expectedPackageName,
28+
@Nonnull final String expectedClassName )
2229
{
2330

2431
// Mock ServiceNameMappings to return empty Optional (no stored mappings)
2532
final ServiceNameMappings mockMappings = mock(ServiceNameMappings.class);
26-
doReturn(Optional.empty()).when(mockMappings).getString(SERVICE_NAME + ".packageName");
27-
doReturn(Optional.empty()).when(mockMappings).getString(SERVICE_NAME + ".className");
33+
doReturn(Optional.empty()).when(mockMappings).getString(serviceName + ".packageName");
34+
doReturn(Optional.empty()).when(mockMappings).getString(serviceName + ".className");
2835

2936
final EdmService service =
3037
new EdmService(
31-
SERVICE_NAME,
38+
serviceName,
3239
mockMappings,
3340
mock(Edm.class),
3441
mock(ServiceDetails.class),
3542
ArrayListMultimap.create(),
3643
false);
3744

38-
assertThat(service.getJavaPackageName()).isEqualTo("apimaterialdocumentsrv");
39-
assertThat(service.getJavaClassName()).isEqualTo("APIMATERIALDOCUMENTSRV");
45+
assertThat(service.getJavaPackageName()).isEqualTo(expectedPackageName);
46+
assertThat(service.getJavaClassName()).isEqualTo(expectedClassName);
4047
}
4148

42-
@Test
43-
void testStoredServiceNameMappingsAreUnchanged()
49+
@ParameterizedTest
50+
@MethodSource( "getServiceNameMappingScenarios" )
51+
void testStoredServiceNameMappingsAreUnchanged(
52+
@Nonnull final String serviceName,
53+
@Nonnull final String expectedPackageName,
54+
@Nonnull final String expectedClassName )
4455
{
45-
final String expectedPackageName = "apimaterialdocumentsrv";
46-
final String expectedClassName = "APIMATERIALDOCUMENTSRV";
47-
4856
// Mock ServiceNameMappings to return stored mappings
4957
final ServiceNameMappings mockMappings = mock(ServiceNameMappings.class);
50-
doReturn(Optional.of(expectedPackageName)).when(mockMappings).getString(SERVICE_NAME + ".packageName");
51-
doReturn(Optional.of(expectedClassName)).when(mockMappings).getString(SERVICE_NAME + ".className");
58+
doReturn(Optional.of(expectedPackageName)).when(mockMappings).getString(serviceName + ".packageName");
59+
doReturn(Optional.of(expectedClassName)).when(mockMappings).getString(serviceName + ".className");
5260

5361
final EdmService service =
5462
new EdmService(
55-
SERVICE_NAME,
63+
serviceName,
5664
mockMappings,
5765
mock(Edm.class),
5866
mock(ServiceDetails.class),
@@ -62,4 +70,14 @@ void testStoredServiceNameMappingsAreUnchanged()
6270
assertThat(service.getJavaPackageName()).isEqualTo(expectedPackageName);
6371
assertThat(service.getJavaClassName()).isEqualTo(expectedClassName);
6472
}
73+
74+
private static Stream<Arguments> getServiceNameMappingScenarios()
75+
{
76+
return Stream
77+
.of(
78+
// Non-breaking fix for https://github.com/SAP/cloud-sdk-java/issues/1024
79+
Arguments.of("API_MATERIAL_DOCUMENT_SRV", "apimaterialdocumentsrv", "APIMATERIALDOCUMENTSRV"),
80+
Arguments.of("Product_Api_Service", "product", "Product" // "Api" and "Service" removed
81+
));
82+
}
6583
}

0 commit comments

Comments
 (0)