package eks

import (
	"encoding/json"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestBuildBatchOpsPolicyDocumentIsSourceBucketIndependent(t *testing.T) {
	document := buildBatchOpsPolicyDocument("123456789012")

	var policy struct {
		Statement []struct {
			Sid       string                       `json:"Sid"`
			Effect    string                       `json:"Effect"`
			Action    []string                     `json:"Action"`
			Condition map[string]map[string]string `json:"Condition"`
		} `json:"Statement"`
	}
	require.NoError(t, json.Unmarshal([]byte(document), &policy))
	require.Len(t, policy.Statement, 1)
	require.Equal(t, "AllowCrossAccountWrite", policy.Statement[0].Sid)
	require.Equal(t, "Allow", policy.Statement[0].Effect)
	require.Equal(t, []string{"s3:PutObject", "s3:PutObjectAcl"}, policy.Statement[0].Action)
	require.Equal(t, map[string]map[string]string{
		"StringNotEquals": {"s3:ResourceAccount": "123456789012"},
	}, policy.Statement[0].Condition)
	require.NotContains(t, document, "dbaas-")
}
