using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Amazon.CloudFront;
using Json.LitJson;
using System.IO;
namespace AWSSDK_DotNet35.UnitTests
{
[TestClass]
public class CloudFrontTests
{
///
/// This test verifies if the AssemblyVersionOverride is set for CloudFront in _sdk-versions.json
/// and it matches the DLL's assembly version.
/// This test can be removed when the SDK version is bumped to 3.4.x.
///
[TestMethod]
[TestCategory("CloudFront")]
public void ValidateCloudFrontAssemblyVersion()
{
string repoRoot = Directory.GetCurrentDirectory();
do
{
if (Directory.Exists(Path.Combine(repoRoot, "generator")))
{
break;
}
var directoryInfo = Directory.GetParent(repoRoot);
repoRoot = directoryInfo != null ? directoryInfo.FullName : null;
} while (repoRoot != null);
string versionsFilePath = Path.Combine(repoRoot, "generator", "ServiceModels", "_sdk-versions.json");
var content = File.ReadAllText(versionsFilePath);
var metadata = JsonMapper.ToObject(File.ReadAllText(versionsFilePath));
var cloudFrontVersion = metadata["ServiceVersions"]["CloudFront"];
if (cloudFrontVersion["AssemblyVersionOverride"] != null)
{
var manifestAssemblyVersion = new Version(cloudFrontVersion["AssemblyVersionOverride"].ToString());
var assemblyVersion = typeof(AmazonCloudFrontClient).Assembly.GetName().Version;
Assert.AreEqual(manifestAssemblyVersion, assemblyVersion);
}
else
{
Assert.Fail(@"Attribute AssemblyVersionOverride is missing for CloudFront in generator\ServiceModels\_sdk-versions.json.");
}
}
///
/// Test to verify fix for misconfigured AmazonCloudFrontCookieSigner.Protocols flags enum.
///
[TestMethod]
[TestCategory("CloudFront")]
public void TestProtocolEnum()
{
var http = AmazonCloudFrontCookieSigner.Protocols.Http;
var https = AmazonCloudFrontCookieSigner.Protocols.Https;
var httpAndHttps = AmazonCloudFrontCookieSigner.Protocols.Http | AmazonCloudFrontCookieSigner.Protocols.Https;
Assert.IsTrue(Evaluate(httpAndHttps));
Assert.IsFalse(Evaluate(http));
Assert.IsFalse(Evaluate(https));
}
private static bool Evaluate(AmazonCloudFrontCookieSigner.Protocols protocol)
{
return protocol ==
(AmazonCloudFrontCookieSigner.Protocols.Http | AmazonCloudFrontCookieSigner.Protocols.Https);
}
}
}