auth/AuthTest/AuthTest.cs (72 lines of code) (raw):
/*
* Copyright (c) 2015 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
using Newtonsoft.Json.Linq;
using System;
using Xunit;
namespace GoogleCloudSamples
{
public class AuthTest
{
static readonly CommandLineRunner s_runner = new CommandLineRunner
{
Command = "AuthSample.exe",
VoidMain = AuthSample.Main,
};
string JsonPath
{
get
{
return System.Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");
}
}
[Theory]
[InlineData("hand")]
[InlineData("cloud")]
[InlineData("api")]
[InlineData("http")]
void TestImplicit(string cmd)
{
var output = s_runner.Run(cmd);
Assert.Equal(0, output.ExitCode);
Assert.False(string.IsNullOrWhiteSpace(output.Stdout));
}
[Theory]
[InlineData("hand")]
[InlineData("cloud")]
[InlineData("api")]
[InlineData("http")]
void TestExplicit(string cmd)
{
var output = s_runner.Run(cmd, "-j", JsonPath);
Assert.Equal(0, output.ExitCode);
Assert.False(string.IsNullOrWhiteSpace(output.Stdout));
}
[Theory(Skip = "https://github.com/GoogleCloudPlatform/dotnet-docs-samples/issues/1998")]
[InlineData("hand")]
[InlineData("cloud")]
[InlineData("api")]
void TestExplicitComputeEngine(string cmd)
{
string metadataJson =
Google.Api.Gax.Platform.Instance()?.GceDetails?.MetadataJson;
if (null == metadataJson)
{
Console.WriteLine("Cannot test Compute Engine methods because "
+ "I'm not running on compute engine.");
return;
}
dynamic metadata = JObject.Parse(metadataJson);
JObject serviceAccounts = metadata?.instance?.serviceAccounts;
bool hasServiceAccounts = null == serviceAccounts ?
false : serviceAccounts.HasValues;
if (!hasServiceAccounts)
{
Console.WriteLine("Cannot test Compute Engine methods because "
+ "this GCE instance has no service accounts.");
return;
}
var output = s_runner.Run(cmd, "-c");
Assert.Equal(0, output.ExitCode);
Assert.False(string.IsNullOrWhiteSpace(output.Stdout));
}
}
}