jec-sandcat
Version:
JEC Sandcat - The default RESTful web services framework for GlassCat applications.
142 lines (130 loc) • 4.74 kB
text/typescript
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
//
// Copyright 2016-2018 Pascal ECHEMANN.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { TestSuite, Test, BeforeAll, After } from "jec-juta";
import { expect } from "chai";
import { ParameterInjector } from "../../../../../src/com/onsoft/sandcat/reflect/ParameterInjector";
import { AnnotationType } from "../../../../../src/com/onsoft/sandcat/reflect/AnnotationType";
// Utilities:
import * as utils from "../../../../../utils/test-utils/utilities/ParameterInjectorTestUtils";
export class ParameterInjectorTest {
public injector:ParameterInjector = null;
public initTest():void {
this.injector = new ParameterInjector();
}
public resetMethodDescriptor():void {
utils.METHOD_DESCRIPTOR.parametersMap.clear();
}
public buildExitTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME, utils.buildParameterDescriptor(AnnotationType.EXIT)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.CALLBACK_HANDLER);
}
public buildPathParamTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME,
utils.buildParameterDescriptor(AnnotationType.PATH_PARAM)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.PROPERTY_VALUE);
}
public buildHttpRequestTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME,
utils.buildParameterDescriptor(AnnotationType.HTTP_REQUEST)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.REQUEST);
}
public buildQueryParamTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME,
utils.buildParameterDescriptor(AnnotationType.QUERY_PARAM)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.QUERY_PARAM_VALUE);
}
public buildRequestBodyTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME,
utils.buildParameterDescriptor(AnnotationType.REQUEST_BODY)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.BODY);
}
public buildCookieParamTest():void {
utils.METHOD_DESCRIPTOR.parametersMap.set(
utils.PARAMETER_NAME,
utils.buildParameterDescriptor(AnnotationType.COOKIE_PARAM)
);
const result:any[] = this.injector.buildParameters(
utils.MATCHER,
utils.CALLBACK_HANDLER,
utils.METHOD_DESCRIPTOR,
utils.REQUEST
);
expect(result[0]).to.equal(utils.COOKIES.parameterName);
}
}