ExampleAPI.tdlan2.ttcn3 5.96 KB
Newer Older
Michele Carignani's avatar
Michele Carignani committed
module ExampleAPI {
    modulepar float mp_componentElapsedTimerMaxDuration
    type record ResourceData {
        charstring id ,
        integer size optional ,
        charstring created optional
    }

    template Request postResource := {
        uri := "/resource" , method := mPOST , headers := ? , parameters :=
        postParameters , body := "TODO_NOT_SUPPORTED_YETX"
    }

    template Parameters postParameters := {
        "TODO_NOT_SUPPORTED_YET"
    }

    template Request postResourceInline := {
        uri := "/resource" , method := mPOST , headers := ? , parameters :=
        "TODO_NOT_SUPPORTED_YETX" , body := "TODO_NOT_SUPPORTED_YETX"
    }

    template Parameter ID1 := {
        name := "TODO: Not Implemented Yet" , value_ :=
        "TODO: Not Implemented Yet" , location := path
    }

    template Response getResource200 := {
        status := "200" , statusMessage := "OK" , headers := ? , body :=
        "TODO_NOT_SUPPORTED_YETX"
    }

    template Response getResourceCollection200 := {
        status := "200" , statusMessage := "OK" , headers := ? , body :=
        validResources
    }

    template CollectionBody validResources := {
        "TODO_NOT_SUPPORTED_YET" , "TODO_NOT_SUPPORTED_YET"
    }

    template Response getResourceCollectionInline200 := {
        status := "200" , statusMessage := "OK" , headers := ? , body :=
        "TODO_NOT_SUPPORTED_YETX"
    }

    template Request getSearchInline := {
        uri := "/search" , method := mGET , headers := ? , parameters :=
        "TODO_NOT_SUPPORTED_YETX" , body := ?
    }

    template Parameters GetRequestParameters := {
        ID1
    }

}

module Standard {
    modulepar float mp_componentElapsedTimerMaxDuration
}

module HTTP {
}

module MessageBasedConfiguration {
    modulepar float mp_componentElapsedTimerMaxDuration

    function setupTestConfiguration_BasicClientServer ( ) runs on
    MTC_BasicClientServer {
        client := API.create ;
        map ( client : http_to_server_http , system : server_http ) ;
    }

    type component MTC_BasicClientServer {
        var API client ;
    }

    type component SYSTEM_BasicClientServer {
        port HTTPGate server_http ;
    }

    type component API {
        timer T_elapsedTimeOfComponent := mp_componentElapsedTimerMaxDuration ;
        port HTTPGate http ;
        port HTTPGate http_to_server_http ;
    }

    type port HTTPGate message {
        inout Request , Response
    }

}

module MessageBased {
    modulepar float mp_componentElapsedTimerMaxDuration
    type charstring MessageBased_SimpleDataType
    type MessageBased_SimpleDataType Method
    type MessageBased_SimpleDataType Location
    type record Request {
        charstring uri ,
        Method method optional ,
        Headers headers optional ,
        Parameters parameters optional ,
        Body body optional
    }

    type record Response {
        integer status optional ,
        charstring statusMessage optional ,
        Headers headers optional ,
        Body body optional
    }

    type record Parameter {
        Location location ,
        charstring name ,
        charstring value_
    }

    type record Header {
        charstring name ,
        charstring value_
    }

    type record Body {
    }

    type record StringBody {
        charstring text
    }

    type record CollectionBody {
        Bodies items
    }

    type record FormBody {
        charstring field ,
        charstring content
    }

    type record of Parameter Parameters
    type record of Header Headers
    type record of Body Bodies
    template Method mGET := "mGET"
    template Method mPOST := "mPOST"
    template Method mPUT := "mPUT"
    template Method mPATCH := "mPATCH"
    template Method mDELETE := "mDELETE"
    template Location path := "path"
    template Location query := "query"
    template Location cookie := "cookie"
    template Request GET := {
        uri := ? , method := ? , headers := ? , parameters := ? , body := ?
    }

    template Request POST := {
        uri := ? , method := ? , headers := ? , parameters := ? , body := ?
    }

    template Request PUT := {
        uri := ? , method := ? , headers := ? , parameters := ? , body := ?
    }

    template Request PATCH := {
        uri := ? , method := ? , headers := ? , parameters := ? , body := ?
    }

    template Request DELETE := {
        uri := ? , method := ? , headers := ? , parameters := ? , body := ?
    }

    template Response d200 := {
        status := ? , statusMessage := "OK" , headers := ? , body := ?
    }

    template Response d201 := {
        status := ? , statusMessage := "Created" , headers := ? , body := ?
    }

    template Response d204 := {
        status := ? , statusMessage := "No Content" , headers := ? , body := ?
    }

    template Response d400 := {
        status := ? , statusMessage := "Bad Request" , headers := ? , body := ?
    }

    template Response d401 := {
        status := ? , statusMessage := "Not Found" , headers := ? , body := ?
    }

    template Response d403 := {
        status := ? , statusMessage := "Not Authorized" , headers := ? , body
        := ?
    }

    template Response d404 := {
        status := ? , statusMessage := "Forbidden" , headers := ? , body := ?
    }

    template Response OK := {
        status := "200" , statusMessage := ? , headers := ? , body := ?
    }

    template Response Created := {
        status := "201" , statusMessage := ? , headers := ? , body := ?
    }

    template Response NoContent := {
        status := "204" , statusMessage := ? , headers := ? , body := ?
    }

    template Response BadRequest := {
        status := "400" , statusMessage := ? , headers := ? , body := ?
    }

    template Response NotFound := {
        status := "404" , statusMessage := ? , headers := ? , body := ?
    }

    template Response NotAuthorized := {
        status := "401" , statusMessage := ? , headers := ? , body := ?
    }

    template Response Forbidden := {
        status := "403" , statusMessage := ? , headers := ? , body := ?
    }

}