Skip to content

Commit f45c27f

Browse files
Revert "Delete Redshift Integration Tests" (#3786)
This reverts commit 1f5cd2c.
1 parent f17bdf1 commit f45c27f

File tree

4 files changed

+250
-0
lines changed

4 files changed

+250
-0
lines changed

sdk/src/Services/Redshift/Redshift.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.Redshift.NetStandard
1818
EndProject
1919
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{12EC4E4B-7E2C-4B63-8EF9-7B959F82A89B}"
2020
EndProject
21+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.IntegrationTests.Redshift.NetFramework", "../../../test/Services/Redshift/IntegrationTests/AWSSDK.IntegrationTests.Redshift.NetFramework.csproj", "{48E78B6D-9270-4F6B-B062-C0C88F16B949}"
22+
EndProject
2123
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AWSSDK.UnitTests.Redshift.NetFramework", "../../../test/Services/Redshift/UnitTests/AWSSDK.UnitTests.Redshift.NetFramework.csproj", "{EF5055BD-C38F-4818-BED0-C9523B871B56}"
2224
EndProject
2325
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceClientGeneratorLib", "../../../../generator/ServiceClientGeneratorLib/ServiceClientGeneratorLib.csproj", "{7BEE7C44-BE12-43CC-AFB9-B5852A1F43C8}"
@@ -66,6 +68,10 @@ Global
6668
{0D3FD58F-A135-4117-922C-38D7DDA3A532}.Debug|Any CPU.Build.0 = Debug|Any CPU
6769
{0D3FD58F-A135-4117-922C-38D7DDA3A532}.Release|Any CPU.ActiveCfg = Release|Any CPU
6870
{0D3FD58F-A135-4117-922C-38D7DDA3A532}.Release|Any CPU.Build.0 = Release|Any CPU
71+
{48E78B6D-9270-4F6B-B062-C0C88F16B949}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
72+
{48E78B6D-9270-4F6B-B062-C0C88F16B949}.Debug|Any CPU.Build.0 = Debug|Any CPU
73+
{48E78B6D-9270-4F6B-B062-C0C88F16B949}.Release|Any CPU.ActiveCfg = Release|Any CPU
74+
{48E78B6D-9270-4F6B-B062-C0C88F16B949}.Release|Any CPU.Build.0 = Release|Any CPU
6975
{EF5055BD-C38F-4818-BED0-C9523B871B56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
7076
{EF5055BD-C38F-4818-BED0-C9523B871B56}.Debug|Any CPU.Build.0 = Debug|Any CPU
7177
{EF5055BD-C38F-4818-BED0-C9523B871B56}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -124,6 +130,7 @@ Global
124130
{C924D055-A9C0-E189-BEFA-46B32FCEE3D0} = {939EC5C2-8345-43E2-8F97-72EEEBEEA0AB}
125131
{4DD013B2-9C90-4BE2-8131-4D796F741A86} = {C924D055-A9C0-E189-BEFA-46B32FCEE3D0}
126132
{0D3FD58F-A135-4117-922C-38D7DDA3A532} = {C924D055-A9C0-E189-BEFA-46B32FCEE3D0}
133+
{48E78B6D-9270-4F6B-B062-C0C88F16B949} = {12EC4E4B-7E2C-4B63-8EF9-7B959F82A89B}
127134
{EF5055BD-C38F-4818-BED0-C9523B871B56} = {12EC4E4B-7E2C-4B63-8EF9-7B959F82A89B}
128135
{7BEE7C44-BE12-43CC-AFB9-B5852A1F43C8} = {12EC4E4B-7E2C-4B63-8EF9-7B959F82A89B}
129136
{002B183F-E568-49CD-9D06-CBCFF2C2921F} = {12EC4E4B-7E2C-4B63-8EF9-7B959F82A89B}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>net472</TargetFramework>
4+
<DefineConstants>$(DefineConstants);DEBUG;TRACE;BCL;ASYNC_AWAIT;LOCAL_FILE</DefineConstants>
5+
<DebugType>portable</DebugType>
6+
<GenerateDocumentationFile>false</GenerateDocumentationFile>
7+
<AssemblyName>AWSSDK.IntegrationTests.Redshift.NetFramework</AssemblyName>
8+
<PackageId>AWSSDK.IntegrationTests.Redshift.NetFramework</PackageId>
9+
10+
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
11+
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
12+
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
13+
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
14+
<GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
15+
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
16+
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
17+
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
18+
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
19+
<NoWarn>CS1591</NoWarn>
20+
</PropertyGroup>
21+
22+
<ItemGroup>
23+
<Compile Remove="**/obj/**" />
24+
<None Remove="**/obj/**" />
25+
</ItemGroup>
26+
27+
<ItemGroup>
28+
<PackageReference Include="MSTest.TestAdapter" Version="1.1.18" />
29+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
30+
<PackageReference Include="MSTest.TestFramework" Version="1.1.18" />
31+
32+
<PackageReference Include="System.Data.SQLite" Version="1.0.97" />
33+
<PackageReference Include="System.Data.SQLite.EF6" Version="1.0.97" />
34+
<PackageReference Include="System.Data.SQLite.Linq" Version="1.0.97" />
35+
</ItemGroup>
36+
37+
<ItemGroup>
38+
<ProjectReference Include="../../../IntegrationTests/AWSSDK.IntegrationTestUtilities.NetFramework.csproj" />
39+
<ProjectReference Include="../../../../src/Core/AWSSDK.Core.NetFramework.csproj" />
40+
<ProjectReference Include="../../../../src/Services/Redshift/AWSSDK.Redshift.NetFramework.csproj" />
41+
</ItemGroup>
42+
43+
<ItemGroup>
44+
<Reference Include="System.Configuration" />
45+
<Reference Include="System.ComponentModel.DataAnnotations" />
46+
<Reference Include="System.IO.Compression" />
47+
<Reference Include="System.Web" />
48+
</ItemGroup>
49+
50+
</Project>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<configSections>
4+
<section name="aws" type="Amazon.AWSSection, AWSSDK.Core" />
5+
</configSections>
6+
<appSettings>
7+
<add key="AWSRegion" value="us-east-1" />
8+
<add key="AWSProfileName" value="default" />
9+
<add key="AWSLogging" value="SystemDiagnostics" />
10+
<add key="AWSResponseLogging" value="OnError" />
11+
<add key="AWSLogMetrics" value="true" />
12+
</appSettings>
13+
<system.diagnostics>
14+
<trace autoflush="true" />
15+
<sources>
16+
<source name="Amazon">
17+
<listeners>
18+
<!--<add name="text" type="System.Diagnostics.TextWriterTraceListener" initializeData="tests-log.txt" />-->
19+
<!--<add name="console" type="System.Diagnostics.ConsoleTraceListener" traceOutputOptions="DateTime"/>-->
20+
<add name="console" type="AWSSDK_DotNet.IntegrationTests.Utils.ConsoleTraceListener, AWSSDK.IntegrationTestUtilities.NetFramework"/>
21+
</listeners>
22+
</source>
23+
</sources>
24+
</system.diagnostics>
25+
<aws correctForClockSkew="true">
26+
<s3 useSignatureVersion4="true"/>
27+
</aws>
28+
</configuration>
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting;
4+
using System.Linq;
5+
using AWSSDK_DotNet.IntegrationTests.Utils;
6+
7+
using Amazon.Redshift;
8+
using Amazon.Redshift.Model;
9+
10+
namespace AWSSDK_DotNet.IntegrationTests.Tests
11+
{
12+
[TestClass]
13+
public class Redshift : TestBase<AmazonRedshiftClient>
14+
{
15+
16+
[ClassCleanup]
17+
public static void Cleanup()
18+
{
19+
BaseClean();
20+
}
21+
22+
[TestMethod]
23+
[TestCategory("Redshift")]
24+
public void CRUDSecurityGroups()
25+
{
26+
string name = "dotnetsdk" + DateTime.UtcNow.Ticks;
27+
var createRequest = new CreateClusterSecurityGroupRequest() { ClusterSecurityGroupName = name, Description = "Description" };
28+
CreateClusterSecurityGroupResponse createResponse = null;
29+
try
30+
{
31+
createResponse = Client.CreateClusterSecurityGroup(createRequest);
32+
var descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name });
33+
Assert.AreEqual(1, descResponse.ClusterSecurityGroups.Count);
34+
Assert.AreEqual(name, descResponse.ClusterSecurityGroups[0].ClusterSecurityGroupName);
35+
36+
var authRequest = new AuthorizeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" };
37+
Client.AuthorizeClusterSecurityGroupIngress(authRequest);
38+
39+
descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name });
40+
Assert.AreEqual(1, descResponse.ClusterSecurityGroups[0].IPRanges.Count);
41+
Assert.AreEqual("0.0.0.0/0", descResponse.ClusterSecurityGroups[0].IPRanges[0].CIDRIP);
42+
43+
var revokeRequest = new RevokeClusterSecurityGroupIngressRequest() { ClusterSecurityGroupName = name, CIDRIP = "0.0.0.0/0" };
44+
Client.RevokeClusterSecurityGroupIngress(revokeRequest);
45+
46+
descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest() { ClusterSecurityGroupName = name });
47+
Assert.AreEqual(0, descResponse.ClusterSecurityGroups[0].IPRanges.Count);
48+
}
49+
catch (AmazonRedshiftException e)
50+
{
51+
// This test does not work for VPC by default accounts so skip the test.
52+
if (!string.Equals(e.Message, "Amazon Redshift has discontinued cluster security groups. For security group configuration, associate VPC security groups when creating or modifying your cluster."))
53+
throw;
54+
}
55+
finally
56+
{
57+
if (createResponse != null)
58+
{
59+
Client.DeleteClusterSecurityGroup(new DeleteClusterSecurityGroupRequest() { ClusterSecurityGroupName = name });
60+
var descResponse = Client.DescribeClusterSecurityGroups(new DescribeClusterSecurityGroupsRequest());
61+
Assert.IsNull(descResponse.ClusterSecurityGroups.FirstOrDefault(x => x.ClusterSecurityGroupName == name));
62+
}
63+
}
64+
}
65+
66+
[TestMethod]
67+
[TestCategory("Redshift")]
68+
public void CRUDParameterGroup()
69+
{
70+
string name = "dotnetsdk" + DateTime.UtcNow.Ticks;
71+
var createRequest = new CreateClusterParameterGroupRequest() { ParameterGroupName = name, ParameterGroupFamily = "redshift-1.0", Description = "A Description" };
72+
CreateClusterParameterGroupResponse createResponse = Client.CreateClusterParameterGroup(createRequest);
73+
try
74+
{
75+
var descResponse = Client.DescribeClusterParameterGroups(new DescribeClusterParameterGroupsRequest() { ParameterGroupName = name });
76+
Assert.AreEqual(1, descResponse.ParameterGroups.Count);
77+
Assert.AreEqual(name, descResponse.ParameterGroups[0].ParameterGroupName);
78+
79+
ModifyClusterParameterGroupRequest modRequest = new ModifyClusterParameterGroupRequest()
80+
{
81+
ParameterGroupName = name,
82+
Parameters = new List<Parameter>
83+
{
84+
new Parameter() { ParameterName = "require_ssl", ParameterValue = "true" }
85+
}
86+
};
87+
var modResponse = Client.ModifyClusterParameterGroup(modRequest);
88+
89+
var descParameterResponse = Client.DescribeClusterParameters(new DescribeClusterParametersRequest() { ParameterGroupName = name });
90+
var parameter = descParameterResponse.Parameters.FirstOrDefault(x => x.ParameterName == "require_ssl");
91+
Assert.IsNotNull(parameter);
92+
Assert.AreEqual("true", parameter.ParameterValue);
93+
}
94+
finally
95+
{
96+
Client.DeleteClusterParameterGroup(new DeleteClusterParameterGroupRequest() { ParameterGroupName = name });
97+
var descResponse = Client.DescribeClusterParameterGroups(new DescribeClusterParameterGroupsRequest());
98+
Assert.IsNull(descResponse.ParameterGroups?.FirstOrDefault(x => x.ParameterGroupName == name));
99+
}
100+
}
101+
102+
[TestMethod]
103+
[TestCategory("Redshift")]
104+
public void DescribeOptions()
105+
{
106+
var response = Client.DescribeOrderableClusterOptions();
107+
Assert.IsTrue(response.OrderableClusterOptions.Count > 0);
108+
}
109+
110+
[TestMethod]
111+
[TestCategory("Redshift")]
112+
public void DescribeEventCategories()
113+
{
114+
var response = Client.DescribeEventCategories();
115+
Assert.IsTrue(response.EventCategoriesMapList.Count >= 0);
116+
}
117+
118+
[TestMethod]
119+
[TestCategory("Redshift")]
120+
public void CRUDHsmClientCertificate()
121+
{
122+
var hsmCertificateId = "dotnetsdk" + DateTime.UtcNow.ToString("yyyyMMddTHHmmssZ");
123+
HsmClientCertificate ourCert = null;
124+
125+
try
126+
{
127+
var createReq = new CreateHsmClientCertificateRequest
128+
{
129+
HsmClientCertificateIdentifier = hsmCertificateId
130+
};
131+
var createResp = Client.CreateHsmClientCertificate(createReq);
132+
133+
Assert.IsNotNull(createResp.HsmClientCertificate);
134+
Assert.IsFalse(string.IsNullOrEmpty(createResp.HsmClientCertificate.HsmClientCertificatePublicKey));
135+
136+
ourCert = createResp.HsmClientCertificate;
137+
138+
string marker = null;
139+
bool found = false;
140+
do
141+
{
142+
var certs = Client.DescribeHsmClientCertificates();
143+
foreach (var cert in certs.HsmClientCertificates
144+
.Where(cert => cert.HsmClientCertificateIdentifier.Equals(hsmCertificateId, StringComparison.OrdinalIgnoreCase)))
145+
{
146+
found = true;
147+
break;
148+
}
149+
marker = certs.Marker;
150+
151+
} while (!found && !string.IsNullOrEmpty(marker));
152+
153+
Assert.IsTrue(found);
154+
}
155+
finally
156+
{
157+
if (ourCert != null)
158+
Client.DeleteHsmClientCertificate(new DeleteHsmClientCertificateRequest
159+
{
160+
HsmClientCertificateIdentifier = hsmCertificateId
161+
});
162+
}
163+
}
164+
}
165+
}

0 commit comments

Comments
 (0)