monitoring/api/UptimeCheckTest/UptimeCheckTest.cs (66 lines of code) (raw):
// Copyright (c) 2018 Google LLC.
//
// 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 System;
using System.Collections.Generic;
using System.Linq;
using Xunit;
namespace GoogleCloudSamples
{
public class UptimeCheckTest : IClassFixture<UptimeCheckTestFixture>
{
private readonly UptimeCheckTestFixture _fixture;
public UptimeCheckTest(UptimeCheckTestFixture fixture)
{
_fixture = fixture;
}
[Fact]
public void TestList()
{
var output = _fixture.Cmd.Run("list", "-p", _fixture.ProjectId);
// Confirm it contains the two configs we just created.
foreach (string configName in _fixture.UptimeCheckConfigNames)
{
Assert.Contains(configName, output.Stdout);
}
}
[Fact]
public void TestListIps()
{
var output = _fixture.Cmd.Run("list-ips");
Assert.Contains("Oregon", output.Stdout);
}
[Fact]
public void TestUpdateAndGet()
{
_fixture.Cmd.Run("update", _fixture.UptimeCheckConfigNames.First(), "-d", "whippletree");
_fixture.Cmd.Run("update", _fixture.UptimeCheckConfigNames.First(), "-h", "http://tachistoscope.com");
var output = _fixture.Cmd.Run("get", _fixture.UptimeCheckConfigNames.First());
Assert.Contains("whippletree", output.Stdout);
Assert.Contains("tachistoscope.com", output.Stdout);
}
}
public class UptimeCheckTestFixture : IDisposable
{
public UptimeCheckTestFixture()
{
// Create two uptime checks to work with.
var output = Cmd.Run("create", "-p", ProjectId, "-d", TestUtil.RandomName());
UptimeCheckConfigNames.Add(output.Stdout.Trim());
output = Cmd.Run("create", "-p", ProjectId, "-d", TestUtil.RandomName());
UptimeCheckConfigNames.Add(output.Stdout.Trim());
}
public IList<string> UptimeCheckConfigNames { get; private set; } =
new List<string>();
public CommandLineRunner Cmd { get; private set; } = new CommandLineRunner()
{
Main = UptimeCheck.Main,
Command = "UptimeCheck"
};
public string ProjectId { get; private set; } =
Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");
public void Dispose()
{
// Clean up the uptime checks we created:
foreach (string configName in UptimeCheckConfigNames)
{
Cmd.Run("delete", configName);
}
}
}
}