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

pl.pragmatists.concordion.rest.SetHeaderCommand Maven / Gradle / Ivy

Go to download

Set of non-official extensions to Concordion (http://concordion.org/). It provides support for writing executable specifications for REST services.

The newest version!
package pl.pragmatists.concordion.rest;

import org.concordion.api.AbstractCommand;
import org.concordion.api.CommandCall;
import org.concordion.api.Element;
import org.concordion.api.Evaluator;
import org.concordion.api.ResultRecorder;
import org.concordion.api.listener.AssertEqualsListener;
import org.concordion.internal.listener.AssertResultRenderer;
import org.concordion.internal.util.Announcer;

public class SetHeaderCommand extends AbstractCommand {

    private Announcer listeners = Announcer.to(AssertEqualsListener.class);
    
    public SetHeaderCommand() {
        listeners.addListener(new AssertResultRenderer());
    }
    
    @Override
    public void setUp(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder) {
        
        Element element = commandCall.getElement();
        element.addStyleClass("set-header");
        
        String headerValue = element.getText();
        RequestExecutor request = RequestExecutor.fromEvaluator(evaluator);
        String headerName = element.getAttributeValue("name");
        request.header(headerName, headerValue);
    }

    @Override
    public void verify(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder) {
        
        Element element = commandCall.getElement();
        String headerName = element.getAttributeValue("name");
        
        String headerValue = RequestExecutor.fromEvaluator(evaluator).getRequestHeader(headerName);
        element.moveChildrenTo(new Element("span"));
        element.appendText(headerValue);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy