e2etest/GuestProxyAgentTest/TestCases/GuestProxyAgentValidationCase.cs (52 lines of code) (raw):

// Copyright (c) Microsoft Corporation // SPDX-License-Identifier: MIT using GuestProxyAgentTest.Extensions; using GuestProxyAgentTest.TestScenarios; using GuestProxyAgentTest.Utilities; using Newtonsoft.Json; namespace GuestProxyAgentTest.TestCases { /// <summary> /// Hello test on In VM script test case /// </summary> public class GuestProxyAgentValidationCase : TestCaseBase { private static readonly string EXPECTED_GUEST_PROXY_AGENT_SERVICE_STATUS; static GuestProxyAgentValidationCase() { if (Constants.IS_WINDOWS()) { EXPECTED_GUEST_PROXY_AGENT_SERVICE_STATUS = "Running"; } else { EXPECTED_GUEST_PROXY_AGENT_SERVICE_STATUS = "enabled"; } } public GuestProxyAgentValidationCase() : base("GuestProxyAgentValidationCase") { } public override async Task StartAsync(TestCaseExecutionContext context) { context.TestResultDetails = (await RunScriptViaRunCommandV2Async(context, Constants.GUEST_PROXY_AGENT_VALIDATION_SCRIPT_NAME, null!)).ToTestResultDetails(ConsoleLog); if (context.TestResultDetails.Succeed && context.TestResultDetails.CustomOut != null) { var validationDetails = context.TestResultDetails.SafeDeserializedCustomOutAs<GuestProxyAgentValidationDetails>(); // check the validation json output, if the guest proxy agent service was installed and runing and guest proxy agent process exists and log was generate, // then consider it as succeed, otherwise fail the case. if (validationDetails != null && validationDetails.GuestProxyAgentServiceInstalled && validationDetails.GuestProxyAgentServiceStatus.Equals(EXPECTED_GUEST_PROXY_AGENT_SERVICE_STATUS, StringComparison.OrdinalIgnoreCase) && validationDetails.GuestProxyProcessStarted && validationDetails.GuestProxyAgentLogGenerated) { context.TestResultDetails.Succeed = true; } else { context.TestResultDetails.Succeed = false; } } } } class GuestProxyAgentValidationDetails { public bool GuestProxyAgentServiceInstalled { get; set; } public bool GuestProxyProcessStarted { get; set; } public bool GuestProxyAgentLogGenerated { get; set; } public string GuestProxyAgentServiceStatus { get; set; } = null!; } }