Skip to content

Commit

Permalink
Add issue 185 tests
Browse files Browse the repository at this point in the history
Issue: #185
  • Loading branch information
muehmar committed Dec 8, 2023
1 parent a05273a commit 8c6cb72
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 1 deletion.
2 changes: 1 addition & 1 deletion example/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ openApiGenerator {
enableValidation = true
builderMethodPrefix = "set"
}
['190', '191', '192', '193', '195'].forEach {issueNumber -> {
['185', '190', '191', '192', '193', '195'].forEach {issueNumber -> {
"${issueNumber}" {
sourceSet = 'main'
inputSpec = "$projectDir/src/main/resources/issues/openapi-issue-${issueNumber}.yml"
Expand Down
23 changes: 23 additions & 0 deletions example/src/main/resources/issues/openapi-issue-185.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
openapi: "3.0.0"
info: { }

paths: { }

components:
schemas:
User:
allOf:
- $ref: '#/components/schemas/UserBase'
required:
- name
properties:
name:
type: string

UserBase:
type: object
required:
- id
properties:
id:
type: integer
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.github.muehmar.gradle.openapi.issue185;

import static org.junit.jupiter.api.Assertions.assertEquals;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.muehmar.gradle.openapi.util.MapperFactory;
import java.util.Collections;
import org.junit.jupiter.api.Test;

public class Issue185Test {

private static final ObjectMapper MAPPER = MapperFactory.mapper();

@Test
void
userDtoBuilder_when_userBaseDtoHasAdditionalNameProperty_then_additionalNamePropertyDiscarded()
throws JsonProcessingException {
final UserBaseDto userBaseDto =
UserBaseDto.userBaseDtoBuilder()
.setId(1234)
.andOptionals()
.addAdditionalProperty("name", "additional-property-name")
.build();
final UserDto userDto =
UserDto.userDtoBuilder().setUserBaseDto(userBaseDto).setName("name").build();

assertEquals(Collections.emptyMap(), userDto.getAdditionalProperties());
assertEquals("{\"id\":1234,\"name\":\"name\"}", MAPPER.writeValueAsString(userDto));
}

@Test
void userDtoBuilder_when_addAdditionalNameProperty_then_additionalNamePropertyDiscarded()
throws JsonProcessingException {
final UserBaseDto userBaseDto = UserBaseDto.userBaseDtoBuilder().setId(1234).build();
final UserDto userDto =
UserDto.userDtoBuilder()
.setUserBaseDto(userBaseDto)
.setName("name")
.andOptionals()
.addAdditionalProperty("name", "additional-property-name")
.build();

assertEquals(Collections.emptyMap(), userDto.getAdditionalProperties());
assertEquals("{\"id\":1234,\"name\":\"name\"}", MAPPER.writeValueAsString(userDto));
}

@Test
void userDtoBuilder_when_addAdditionalIdProperty_then_additionalIdPropertyDiscarded()
throws JsonProcessingException {
final UserBaseDto userBaseDto = UserBaseDto.userBaseDtoBuilder().setId(1234).build();
final UserDto userDto =
UserDto.userDtoBuilder()
.setUserBaseDto(userBaseDto)
.setName("name")
.andOptionals()
.addAdditionalProperty("id", "additional-property-id")
.build();

assertEquals(Collections.emptyMap(), userDto.getAdditionalProperties());
assertEquals("{\"id\":1234,\"name\":\"name\"}", MAPPER.writeValueAsString(userDto));
}
}

0 comments on commit 8c6cb72

Please sign in to comment.