Skip to content

Commit

Permalink
Merge pull request #240 from muehmar/v2.6.1-tests
Browse files Browse the repository at this point in the history
Add tests for #238
  • Loading branch information
muehmar authored Jan 22, 2024
2 parents 725c564 + 1dda930 commit 5c3e454
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 4 deletions.
2 changes: 1 addition & 1 deletion example-jakarta-3/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id "com.github.muehmar.openapischema" version "2.6.0"
id "com.github.muehmar.openapischema" version "2.6.1"
id "com.diffplug.spotless"
id 'openapischema.java'
}
Expand Down
4 changes: 2 additions & 2 deletions example/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id "com.github.muehmar.openapischema" version "2.6.0"
id "com.github.muehmar.openapischema" version "2.6.1"
id "com.diffplug.spotless"
id 'openapischema.java'
id 'java-test-fixtures'
Expand Down Expand Up @@ -250,7 +250,7 @@ openApiGenerator {
inputSpec = "$projectDir/src/main/resources/openapi-oneof-enum-discriminator.yml"
packageName = "com.github.muehmar.gradle.openapi.oneofenumdiscriminator"
}
['71', '182', '185', '190', '191', '192', '193', '195', '209', '234'].forEach {issueNumber -> {
['71', '182', '185', '190', '191', '192', '193', '195', '209', '234', '238'].forEach {issueNumber -> {
"${issueNumber}" {
inputSpec = "$projectDir/src/main/resources/issues/openapi-issue-${issueNumber}.yml"
packageName = "com.github.muehmar.gradle.openapi.issue${issueNumber}"
Expand Down
48 changes: 48 additions & 0 deletions example/src/main/resources/issues/openapi-issue-238.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
openapi: "3.0.0"
info: { }

paths: { }

components:
schemas:
User:
required:
- username
properties:
username:
type: string

Admin:
required:
- adminname
properties:
adminname:
type: string


UserOrAdminOptionalProps:
anyOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/Admin'
properties:
level:
type: integer


UserOrAdminRequiredProps:
anyOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/Admin'
required:
- level
properties:
level:
type: integer


UserOrAdminRequiredAdditionalProps:
anyOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/Admin'
required:
- level
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package com.github.muehmar.gradle.openapi.issue238;

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

import java.util.Optional;
import org.junit.jupiter.api.Test;

public class Issue238Test {
@Test
void fullBuilder_when_usedWithOptionalPropsAnyOf_then_canSetLevel() {
final UserOrAdminOptionalPropsDto dto =
UserOrAdminOptionalPropsDto.fullBuilder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.setLevel(5)
.build();

assertEquals(Optional.of(5), dto.getLevelOpt());
}

@Test
void builder_when_usedWithOptionalPropsAnyOf_then_canSetLevel() {
final UserOrAdminOptionalPropsDto dto =
UserOrAdminOptionalPropsDto.builder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.andAllOptionals()
.setLevel(5)
.build();

assertEquals(Optional.of(5), dto.getLevelOpt());
}

@Test
void fullBuilder_when_usedWithRequiredPropsAnyOf_then_canSetLevel() {
final UserOrAdminRequiredPropsDto dto =
UserOrAdminRequiredPropsDto.fullBuilder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.setLevel(5)
.build();

assertEquals(5, dto.getLevel());
}

@Test
void builder_when_usedWithRequiredPropsAnyOf_then_canSetLevel() {
final UserOrAdminRequiredPropsDto dto =
UserOrAdminRequiredPropsDto.builder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.setLevel(5)
.andAllOptionals()
.build();

assertEquals(5, dto.getLevel());
}

@Test
void fullBuilder_when_usedWithRequiredAdditionalPropsAnyOf_then_canSetLevel() {
final UserOrAdminRequiredAdditionalPropsDto dto =
UserOrAdminRequiredAdditionalPropsDto.fullBuilder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.setLevel(5)
.build();

assertEquals(5, dto.getLevel());
}

@Test
void builder_when_usedWithRequiredAdditionalPropsAnyOf_then_canSetLevel() {
final UserOrAdminRequiredAdditionalPropsDto dto =
UserOrAdminRequiredAdditionalPropsDto.builder()
.setAdminDto(AdminDto.builder().setAdminname("adminname").build())
.setLevel(5)
.andAllOptionals()
.build();

assertEquals(5, dto.getLevel());
}
}
2 changes: 1 addition & 1 deletion spring-example/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id "com.github.muehmar.openapischema" version "2.6.0"
id "com.github.muehmar.openapischema" version "2.6.1"
id "com.diffplug.spotless"
id 'openapischema.java'
id 'idea'
Expand Down

0 comments on commit 5c3e454

Please sign in to comment.