From 046e8fd17ee1a356128ece3c29cee0ba5a4056d3 Mon Sep 17 00:00:00 2001 From: iternity-dotcom <79988904+iternity-dotcom@users.noreply.github.com> Date: Tue, 20 Apr 2021 18:40:03 +0200 Subject: [PATCH] Mint - Add AWS SDK Go tests (#12097) * Add aws-sdk-go tests: extend testListObjectVersionsSimple with error cases * Add aws-sdk-go tests: extend testListMultipartUploads with error cases Co-authored-by: Andre Bruch Signed-off-by: Harshavardhana --- mint/build/versioning/list.go | 41 ++++++++++++++++++++++++++++++++ mint/run/core/aws-sdk-go/main.go | 23 ++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/mint/build/versioning/list.go b/mint/build/versioning/list.go index 8b30cda78..4d77de681 100644 --- a/mint/build/versioning/list.go +++ b/mint/build/versioning/list.go @@ -27,6 +27,8 @@ import ( "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" ) @@ -177,6 +179,45 @@ func testListObjectVersionsSimple() { return } + // Error cases + + // bucket-listobjects-handlers.go > ListObjectVersionsHandler > listObjectVersions + lovInput := &s3.ListObjectVersionsInput{ + Bucket: aws.String(bucket), + VersionIdMarker: aws.String("test"), + } + result, err = s3Client.ListObjectVersions(lovInput) + if err == nil { + failureLog(function, args, startTime, "", fmt.Sprintf("ListObjectVersions expected to fail but got %v", err), err).Fatal() + return + } + + // bucket-listobjects-handlers.go > ListObjectVersionsHandler > validateListObjectsArgs + lovInput.EncodingType = aws.String("test") + result, err = s3Client.ListObjectVersions(lovInput) + if err == nil { + failureLog(function, args, startTime, "", fmt.Sprintf("ListObjectVersions expected to fail but got %v", err), err).Fatal() + return + } + + // Second client + creds := credentials.NewStaticCredentials("test", "test", "") + newSession, err := session.NewSession() + if err != nil { + failureLog(function, args, startTime, "", fmt.Sprintf("NewSession expected to succeed but got %v", err), err).Fatal() + return + } + s3Config := s3Client.Config + s3Config.Credentials = creds + s3ClientTest := s3.New(newSession, &s3Config) + + // Check with a second client: bucket-listobjects-handlers.go > ListObjectVersionsHandler > checkRequestAuthType + result, err = s3ClientTest.ListObjectVersions(lovInput) + if err == nil { + failureLog(function, args, startTime, "", fmt.Sprintf("ListObjectVersions expected to fail but got %v", err), err).Fatal() + return + } + successLogger(function, args, startTime).Info() } diff --git a/mint/run/core/aws-sdk-go/main.go b/mint/run/core/aws-sdk-go/main.go index b7010314d..7b4dc9835 100644 --- a/mint/run/core/aws-sdk-go/main.go +++ b/mint/run/core/aws-sdk-go/main.go @@ -951,6 +951,29 @@ func testListMultipartUploads(s3Client *s3.S3) { return } + // Error cases + + // MaxParts < 0 + lpInput := &s3.ListPartsInput{ + Bucket: aws.String(bucket), + Key: aws.String(object), + UploadId: multipartUpload.UploadId, + MaxParts: aws.Int64(-1), + } + listParts, err = s3Client.ListParts(lpInput) + if err == nil { + failureLog(function, args, startTime, "", "AWS SDK Go ListPartsInput API (MaxParts < 0) failed for", err).Fatal() + return + } + + // PartNumberMarker < 0 + lpInput.PartNumberMarker = aws.Int64(-1) + listParts, err = s3Client.ListParts(lpInput) + if err == nil { + failureLog(function, args, startTime, "", "AWS SDK Go ListPartsInput API (PartNumberMarker < 0) failed for", err).Fatal() + return + } + successLogger(function, args, startTime).Info() }