All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.restassured.module.mockmvc.internal.ConfigConverter Maven / Gradle / Ivy

/*
 * Copyright 2016 the original author or authors.
 *
 * 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.
 */

package io.restassured.module.mockmvc.internal;

import io.restassured.config.ParamConfig;
import io.restassured.config.RestAssuredConfig;
import io.restassured.module.mockmvc.config.MockMvcParamConfig;
import io.restassured.module.mockmvc.config.RestAssuredMockMvcConfig;

import java.lang.reflect.Field;

import static io.restassured.module.mockmvc.internal.UpdateStrategyConverter.convert;

class ConfigConverter {

    public static RestAssuredConfig convertToRestAssuredConfig(RestAssuredMockMvcConfig mvcConfig) {
        return new RestAssuredConfig().jsonConfig(mvcConfig.getJsonConfig()).xmlConfig(mvcConfig.getXmlConfig()).sessionConfig(mvcConfig.getSessionConfig()).
                objectMapperConfig(mvcConfig.getObjectMapperConfig()).logConfig(mvcConfig.getLogConfig()).encoderConfig(mvcConfig.getEncoderConfig()).
                decoderConfig(mvcConfig.getDecoderConfig()).multiPartConfig(mvcConfig.getMultiPartConfig()).paramConfig(toParamConfig(mvcConfig.getParamConfig()));
    }

    private static ParamConfig toParamConfig(MockMvcParamConfig cfg) {
        ParamConfig config = new ParamConfig(convert(cfg.queryParamsUpdateStrategy()),
                convert(cfg.formParamsUpdateStrategy()), convert(cfg.requestParamsUpdateStrategy()));
        // We need to set the user configured flag to false if needed
        if (!cfg.isUserConfigured()) {
            Field userConfigured = null;
            try {
                userConfigured = config.getClass().getDeclaredField("userConfigured");
                userConfigured.setAccessible(true);
                userConfigured.set(config, false);
            } catch (Exception e) {
                throw new RuntimeException("Internal error in REST Assured, please report an issue!", e);
            } finally {
                if (userConfigured != null) {
                    userConfigured.setAccessible(false);
                }
            }
        }
        return config;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy