forked from loafle/openapi-generator-original
fix toJSON, add tests (#12541)
This commit is contained in:
parent
6948f15514
commit
5db8cd0eff
@ -19,10 +19,6 @@
|
||||
) {
|
||||
local_optional_var <- list(...)
|
||||
},
|
||||
toJSON = function() {
|
||||
{{classname}}_object <- list()
|
||||
{{classname}}_object
|
||||
},
|
||||
fromJSON = function(input) {
|
||||
matched <- 0 # match counter
|
||||
matched_schemas <- list() #names of matched schemas
|
||||
@ -59,6 +55,13 @@
|
||||
}
|
||||
|
||||
self
|
||||
},
|
||||
toJSON = function() {
|
||||
if (!is.null(self$actual_instance)) {
|
||||
self$actual_instance$toJSONString()
|
||||
} else {
|
||||
NULL
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -26,10 +26,6 @@ Pig <- R6::R6Class(
|
||||
) {
|
||||
local_optional_var <- list(...)
|
||||
},
|
||||
toJSON = function() {
|
||||
Pig_object <- list()
|
||||
Pig_object
|
||||
},
|
||||
fromJSON = function(input) {
|
||||
matched <- 0 # match counter
|
||||
matched_schemas <- list() #names of matched schemas
|
||||
@ -79,6 +75,13 @@ Pig <- R6::R6Class(
|
||||
}
|
||||
|
||||
self
|
||||
},
|
||||
toJSON = function() {
|
||||
if (!is.null(self$actual_instance)) {
|
||||
self$actual_instance$toJSONString()
|
||||
} else {
|
||||
NULL
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
@ -57,14 +57,16 @@ json <-
|
||||
{"Name" : "Ada", "Occupation" : "Engineer"}
|
||||
]'
|
||||
|
||||
print("==========")
|
||||
pig <- Pig$new()
|
||||
basque_pig <- pig$fromJSON(basque_pig_json)
|
||||
#print(basque_pig$actual_instance$color)
|
||||
#expect_equal(basque_pig$actual_type, "BasquePig")
|
||||
i <- pig$fromJSON(danish_pig_json)
|
||||
#i <- pig$fromJSON(wrong_json)
|
||||
pig$fromJSON(danish_pig_json)
|
||||
#pig$fromJSON(wrong_json)
|
||||
pig$toJSON()
|
||||
|
||||
d <- DanishPig$new()
|
||||
dp <- d$validateJSON(danish_pig_json)
|
||||
#d <- DanishPig$new()
|
||||
#dp <- d$validateJSON(danish_pig_json)
|
||||
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
context("basic functionality")
|
||||
|
||||
pet_api <- PetApi$new()
|
||||
pet_id <- 123321
|
||||
pet <- Pet$new("name_test",
|
||||
@ -152,20 +153,34 @@ test_that("Tests oneOf", {
|
||||
{"Name" : "Ada", "Occupation" : "Engineer"}
|
||||
]'
|
||||
|
||||
original_danish_pig = DanishPig$new()$fromJSON(danish_pig_json)
|
||||
original_basque_pig = BasquePig$new()$fromJSON(basque_pig_json)
|
||||
|
||||
# test fromJSNO, actual_tpye, actual_instance
|
||||
pig <- Pig$new()
|
||||
danish_pig <- pig$fromJSON(danish_pig_json)
|
||||
expect_equal(danish_pig$actual_type, "DanishPig")
|
||||
expect_equal(danish_pig$actual_instance$size, 7)
|
||||
expect_equal(danish_pig$actual_instance$className, "DanishPig")
|
||||
|
||||
expect_equal(pig$actual_type, "DanishPig")
|
||||
expect_equal(pig$actual_instance$size, 7)
|
||||
expect_equal(pig$actual_instance$className, "DanishPig")
|
||||
|
||||
# test toJSON
|
||||
#expect_equal(danish_pig$toJSON(), "")
|
||||
expect_equal(danish_pig$toJSON(), original_danish_pig$toJSONString())
|
||||
|
||||
basque_pig <- pig$fromJSON(basque_pig_json)
|
||||
expect_equal(basque_pig$actual_type, "BasquePig")
|
||||
expect_equal(basque_pig$actual_instance$color, "red")
|
||||
expect_equal(basque_pig$actual_instance$className, "BasquePig")
|
||||
expect_equal(basque_pig$toJSON(), original_basque_pig$toJSONString())
|
||||
|
||||
#expect_error(pig$fromJSON(wrong_json), "No match found when deserializing the payload into Pig with oneOf schemas BasquePig, DanishPig. Details: The JSON input ` [\n {\"Name\" : \"Tom\", \"Age\" : 32, \"Occupation\" : \"Consultant\"}, \n {},\n {\"Name\" : \"Ada\", \"Occupation\" : \"Engineer\"}\n ] ` is invalid for BasquePig: the required field `className` is missing., The JSON input ` [\n {\"Name\" : \"Tom\", \"Age\" : 32, \"Occupation\" : \"Consultant\"}, \n {},\n {\"Name\" : \"Ada\", \"Occupation\" : \"Engineer\"}\n ] ` is invalid for DanishPig: the required field `className` is missing.")
|
||||
# test exception when no matche found
|
||||
expect_error(pig$fromJSON('{}'), 'No match found when deserializing the payload into Pig with oneOf schemas BasquePig, DanishPig. Details: The JSON input ` \\{\\} ` is invalid for BasquePig: the required field `className` is missing\\., The JSON input ` \\{\\} ` is invalid for DanishPig: the required field `className` is missing\\.')
|
||||
|
||||
|
||||
})
|
||||
|
||||
#test_that("GetPetById", {
|
||||
|
Loading…
x
Reference in New Issue
Block a user