# Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import os
import json
import pytest
from StepFunctionClient import StepFunctionClient

def test_successful_execution():
    # read environment variables from CodeBuild Project
    aws_region = os.environ['AWS_REGION']
    state_machine_name = os.environ['STATE_MACHINE_NAME']

    client = StepFunctionClient(aws_region=aws_region)

    # start the state machine
    pipeline_metadata = client.start_pipeline_synchronous(
        name=f"{state_machine_name}",
        input='{\"input\": \"1 20 3\"}'
    )

    expected_output = {'first': '1', 'second': '20', 'third': '3', 'result': 3}

    print(pipeline_metadata)
    execution_arn = pipeline_metadata.get_executionarn()
    execution_metadata = client.get_pipeline_execution_metadata(executionarn=execution_arn)
    execution_output = execution_metadata.get_output()
    json_output = json.loads(execution_output)

    assert(pipeline_metadata.get_status() == 'SUCCEEDED')
    assert(json_output['Payload'] == expected_output)