Added simple test for PetApi

This commit is contained in:
Tino Fuhrmann
2018-12-02 21:01:03 +01:00
parent 502e209bfe
commit 69dfdd57a6
8 changed files with 267 additions and 23 deletions

View File

@@ -130,6 +130,7 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
supportingFiles.add(new SupportingFile("auth" + File.separator + "auth.mustache", "auth", "auth.ts"));
supportingFiles.add(new SupportingFile("model/models_all.mustache", "models", "all.ts"));
// TODO: add supporting files depending on cli parameter e.g. fetch vs angular
supportingFiles.add(new SupportingFile("generators/PromiseAPI.mustache", "PromiseAPI.ts"));
supportingFiles.add(new SupportingFile("generators/fetch/index.mustache", "index.ts"));
@@ -137,7 +138,7 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
// models
// TODO: properly set model and api packages
this.setModelPackage("");
supportingFiles.add(new SupportingFile("api/ObjectSerializer.mustache", "models", "ObjectSerializer.ts"));
supportingFiles.add(new SupportingFile("model/ObjectSerializer.mustache", "models", "ObjectSerializer.ts"));
modelTemplateFiles.put("model/model.mustache", ".ts");
// api

View File

@@ -26,7 +26,7 @@ export class {{classname}} {
const requestContext = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}

View File

@@ -23,7 +23,7 @@ export class PetApi {
const requestContext = this.requestFactory.addPet(pet, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -42,7 +42,7 @@ export class PetApi {
const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -61,7 +61,7 @@ export class PetApi {
const requestContext = this.requestFactory.findPetsByStatus(status, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -80,7 +80,7 @@ export class PetApi {
const requestContext = this.requestFactory.findPetsByTags(tags, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -99,7 +99,7 @@ export class PetApi {
const requestContext = this.requestFactory.getPetById(petId, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -118,7 +118,7 @@ export class PetApi {
const requestContext = this.requestFactory.updatePet(pet, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -137,7 +137,7 @@ export class PetApi {
const requestContext = this.requestFactory.updatePetWithForm(petId, name, status, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -156,7 +156,7 @@ export class PetApi {
const requestContext = this.requestFactory.uploadFile(petId, additionalMetadata, file, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -191,7 +191,7 @@ export class StoreApi {
const requestContext = this.requestFactory.deleteOrder(orderId, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -210,7 +210,7 @@ export class StoreApi {
const requestContext = this.requestFactory.getInventory(options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -229,7 +229,7 @@ export class StoreApi {
const requestContext = this.requestFactory.getOrderById(orderId, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -248,7 +248,7 @@ export class StoreApi {
const requestContext = this.requestFactory.placeOrder(order, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -283,7 +283,7 @@ export class UserApi {
const requestContext = this.requestFactory.createUser(user, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -302,7 +302,7 @@ export class UserApi {
const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -321,7 +321,7 @@ export class UserApi {
const requestContext = this.requestFactory.createUsersWithListInput(user, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -340,7 +340,7 @@ export class UserApi {
const requestContext = this.requestFactory.deleteUser(username, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -359,7 +359,7 @@ export class UserApi {
const requestContext = this.requestFactory.getUserByName(username, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -378,7 +378,7 @@ export class UserApi {
const requestContext = this.requestFactory.loginUser(username, password, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -397,7 +397,7 @@ export class UserApi {
const requestContext = this.requestFactory.logoutUser(options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
@@ -416,7 +416,7 @@ export class UserApi {
const requestContext = this.requestFactory.updateUser(username, user, options);
// build promise chain
let middlewarePrePromise =Promise.resolve(requestContext);
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}

View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ts_petstore_client_1 = require("ts-petstore-client");
var chai_1 = require("chai");
var configuration = new ts_petstore_client_1.Configuration();
var petApi = new ts_petstore_client_1.PetApi(configuration);
describe("PetApi", function () {
it("addPet", function (done) {
var pet = new ts_petstore_client_1.Pet();
pet.id = Math.floor(Math.random() * 100000);
pet.name = "PetName";
pet.photoUrls = [];
pet.status = ts_petstore_client_1.Pet.StatusEnum.Available;
pet.tags = [];
pet.category = undefined;
petApi.addPet(pet).then(function () {
return petApi.getPetById(pet.id);
}).then(function (createdPet) {
chai_1.expect(createdPet).to.deep.equal(pet);
done();
}).catch(function (err) {
done(err);
});
});
});

View File

@@ -0,0 +1,193 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var rewire = require("rewire");
var chai_1 = require("chai");
var ts_petstore_client_1 = require("ts-petstore-client");
var objectSerializerFile = rewire("../../node_modules/ts-petstore-client/dist/models/ObjectSerializer.js");
var ObjectSerializer = objectSerializerFile.__get__("ObjectSerializer");
describe("ObjectSerializer", function () {
describe("Serialize", function () {
it("String", function () {
var input = "test string";
chai_1.expect(ObjectSerializer.serialize(input, "string")).to.equal("test string");
});
it("Number", function () {
var input = 1337;
chai_1.expect(ObjectSerializer.serialize(input, "number")).to.equal(1337);
});
it("String Array", function () {
var input = ["a", "b", "c"];
chai_1.expect(ObjectSerializer.serialize(input, "Array<string>")).to.deep.equal(["a", "b", "c"]);
});
it("Number Array", function () {
var input = [1337, 42, 0];
chai_1.expect(ObjectSerializer.serialize(input, "Array<number>")).to.deep.equal([1337, 42, 0]);
});
it("Date", function () {
var input = new Date(1543777609696);
chai_1.expect(ObjectSerializer.serialize(input, "Date")).to.equal(input.toISOString());
});
it("Object", function () {
var input = { "a": "test", "b": { "test": 5 } };
chai_1.expect(ObjectSerializer.serialize(input, "Object")).to.deep.equal({ a: "test", "b": { "test": 5 } });
});
it("Class", function () {
var input = new ts_petstore_client_1.Category();
input.id = 4;
input.name = "Test";
chai_1.expect(ObjectSerializer.serialize(input, "Category")).to.deep.equal({ "id": input.id, "name": input.name });
});
it("Enum", function () {
var input = ts_petstore_client_1.Pet.StatusEnum.Available;
chai_1.expect(ObjectSerializer.serialize(input, "Pet.StatusEnum")).to.equal("available");
});
it("Complex Class", function () {
var tags = [];
var tagResult = [];
for (var i = 0; i < 2; i++) {
var tag = new ts_petstore_client_1.Tag();
tag.id = i;
tag.name = "Tag" + i;
tags.push(tag);
tagResult.push({
"id": tag.id,
"name": tag.name
});
}
var category = new ts_petstore_client_1.Category();
category.id = 4;
category.name = "TestCat";
var pet = new ts_petstore_client_1.Pet();
pet.id = 145;
pet.category = category;
pet.name = "PetName";
pet.photoUrls = ["url", "other url"];
pet.status = ts_petstore_client_1.Pet.StatusEnum.Available;
pet.tags = tags;
chai_1.expect(ObjectSerializer.serialize(pet, "Pet")).to.deep.equal({
"id": pet.id,
"name": pet.name,
"category": {
"id": category.id,
"name": category.name
},
"photoUrls": ["url", "other url"],
"status": "available",
"tags": tagResult
});
});
it("Array of Class", function () {
var categories = [];
var result = [];
for (var i = 0; i < 2; i++) {
var category = new ts_petstore_client_1.Category();
category.id = i;
category.name = "Cat" + i;
categories.push(category);
result.push({
"id": category.id,
"name": category.name
});
}
chai_1.expect(ObjectSerializer.serialize(categories, "Array<Category>")).to.deep.equal(result);
});
});
describe("Deserialize", function () {
it("String", function () {
var input = "test string";
chai_1.expect(ObjectSerializer.deserialize(input, "string")).to.equal("test string");
});
it("Number", function () {
var input = 1337;
chai_1.expect(ObjectSerializer.deserialize(input, "number")).to.equal(1337);
});
it("String Array", function () {
var input = ["a", "b", "c"];
chai_1.expect(ObjectSerializer.deserialize(input, "Array<string>")).to.deep.equal(["a", "b", "c"]);
});
it("Number Array", function () {
var input = [1337, 42, 0];
chai_1.expect(ObjectSerializer.deserialize(input, "Array<number>")).to.deep.equal([1337, 42, 0]);
});
it("Date", function () {
var input = new Date(1543777609696);
chai_1.expect(ObjectSerializer.deserialize(input.toISOString(), "Date").getTime()).to.equal(input.getTime());
});
it("Object", function () {
var input = { "a": "test", "b": { "test": 5 } };
chai_1.expect(ObjectSerializer.deserialize(input, "Object")).to.deep.equal({ a: "test", "b": { "test": 5 } });
});
it("Class", function () {
var input = new ts_petstore_client_1.Category();
input.id = 4;
input.name = "Test";
var deserialized = ObjectSerializer.deserialize({ "id": 4, "name": "Test" }, "Category");
chai_1.expect(deserialized.constructor.name).to.equal("Category");
chai_1.expect(deserialized).to.deep.equal(input);
});
it("Enum", function () {
var input = ts_petstore_client_1.Pet.StatusEnum.Available;
chai_1.expect(ObjectSerializer.deserialize("available", "Pet.StatusEnum")).to.equal(input);
});
it("Complex Class", function () {
var tags = [];
var tagResult = [];
for (var i = 0; i < 2; i++) {
var tag = new ts_petstore_client_1.Tag();
tag.id = i;
tag.name = "Tag" + i;
tags.push(tag);
tagResult.push({
"id": tag.id,
"name": tag.name
});
}
var category = new ts_petstore_client_1.Category();
category.id = 4;
category.name = "TestCat";
var pet = new ts_petstore_client_1.Pet();
pet.id = 145;
pet.category = category;
pet.name = "PetName";
pet.photoUrls = ["url", "other url"];
pet.status = ts_petstore_client_1.Pet.StatusEnum.Available;
pet.tags = tags;
var deserialized = ObjectSerializer.deserialize({
"id": pet.id,
"name": pet.name,
"category": {
"id": category.id,
"name": category.name
},
"photoUrls": ["url", "other url"],
"status": "available",
"tags": tagResult
}, "Pet");
chai_1.expect(deserialized.constructor.name).to.equal("Pet");
chai_1.expect(deserialized.category.constructor.name).to.equal("Category");
for (var i = 0; i < deserialized.tags.length; i++) {
chai_1.expect(deserialized.tags[i].constructor.name).to.equal("Tag");
}
chai_1.expect(deserialized).to.deep.equal(pet);
});
it("Array of Class", function () {
var categories = [];
var result = [];
for (var i = 0; i < 2; i++) {
var category = new ts_petstore_client_1.Category();
category.id = i;
category.name = "Cat" + i;
categories.push(category);
result.push({
"id": category.id,
"name": category.name
});
}
var deserialized = ObjectSerializer.deserialize(result, "Array<Category>");
for (var i = 0; i < categories.length; i++) {
chai_1.expect(deserialized[i].constructor.name).to.equal("Category");
}
chai_1.expect(deserialized).to.deep.equal(categories);
});
});
});

View File

@@ -0,0 +1,26 @@
import {PetApi, Configuration, Pet} from 'ts-petstore-client'
import { expect, assert } from "chai";
const configuration = new Configuration()
const petApi = new PetApi(configuration)
describe("PetApi", () =>{
it("addPet", (done) => {
const pet = new Pet()
pet.id = Math.floor(Math.random() * 100000)
pet.name = "PetName"
pet.photoUrls = []
pet.status = Pet.StatusEnum.Available
pet.tags = []
pet.category = undefined
petApi.addPet(pet).then(() => {
return petApi.getPetById(pet.id)
}).then((createdPet) => {
expect(createdPet).to.deep.equal(pet);
done()
}).catch((err) => {
done(err)
})
})
})

View File

@@ -6,7 +6,6 @@ import {Pet, Category, Tag} from "ts-petstore-client"
const objectSerializerFile = rewire("../../node_modules/ts-petstore-client/dist/models/ObjectSerializer.js")
const ObjectSerializer = objectSerializerFile.__get__("ObjectSerializer")
//console.log(ObjectSerializer)
describe("ObjectSerializer", () => {