From 209c92111928a98972d7f0f9d6d620ab566564d9 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Thu, 10 Nov 2022 22:48:05 -0600 Subject: Automate the test for GetRelatedBundleVariable. --- .../BafRelatedBundleVariableTesting.cpp | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp (limited to 'src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp') diff --git a/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp b/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp new file mode 100644 index 00000000..01750b4b --- /dev/null +++ b/src/test/burn/TestData/BAFunctionsTests/BafRelatedBundleVariableTesting/BafRelatedBundleVariableTesting.cpp @@ -0,0 +1,102 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +#include "precomp.h" +#include "BalBaseBAFunctions.h" +#include "BalBaseBAFunctionsProc.h" + +const LPCWSTR STRING_VARIABLE = L"AString"; +const LPCWSTR NUMBER_VARIABLE = L"ANumber"; + +class CBafRelatedBundleVariableTesting : public CBalBaseBAFunctions +{ +public: // IBAFunctions + + +public: //IBootstrapperApplication + virtual STDMETHODIMP OnDetectRelatedBundle( + __in_z LPCWSTR wzBundleId, + __in BOOTSTRAPPER_RELATION_TYPE relationType, + __in_z LPCWSTR wzBundleTag, + __in BOOL fPerMachine, + __in LPCWSTR wzVersion, + __in BOOL fMissingFromCache, + __inout BOOL* pfCancel + ) + { + + HRESULT hr = S_OK; + LPWSTR wzValue = NULL; + + hr = BalGetRelatedBundleVariable(wzBundleId, STRING_VARIABLE, &wzValue); + + ExitOnFailure(hr, "Failed to get related bundle string variable."); + + if (wzValue) + { + BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: AString = %ws", wzValue); + } + + hr = BalGetRelatedBundleVariable(wzBundleId, NUMBER_VARIABLE, &wzValue); + + if (wzValue) + { + BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Retrieved related bundle variable with BAFunctions: ANumber = %ws", wzValue); + } + + hr = __super::OnDetectRelatedBundle(wzBundleId, relationType, wzBundleTag, fPerMachine, wzVersion, fMissingFromCache, pfCancel); + LExit: + ReleaseStr(wzValue); + return hr; + } +private: + + +public: + // + // Constructor - initialize member variables. + // + CBafRelatedBundleVariableTesting( + __in HMODULE hModule, + __in IBootstrapperEngine* pEngine, + __in const BA_FUNCTIONS_CREATE_ARGS* pArgs + ) : CBalBaseBAFunctions(hModule, pEngine, pArgs) + { + } + + // + // Destructor - release member variables. + // + ~CBafRelatedBundleVariableTesting() + { + } + +private: +}; + + +HRESULT WINAPI CreateBAFunctions( + __in HMODULE hModule, + __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, + __inout BA_FUNCTIONS_CREATE_RESULTS* pResults + ) +{ + HRESULT hr = S_OK; + CBafRelatedBundleVariableTesting* pBAFunctions = NULL; + IBootstrapperEngine* pEngine = NULL; + + hr = BalInitializeFromCreateArgs(pArgs->pBootstrapperCreateArgs, &pEngine); + ExitOnFailure(hr, "Failed to initialize Bal."); + + pBAFunctions = new CBafRelatedBundleVariableTesting(hModule, pEngine, pArgs); + ExitOnNull(pBAFunctions, hr, E_OUTOFMEMORY, "Failed to create new CBafRelatedBundleVariableTesting object."); + + pResults->pfnBAFunctionsProc = BalBaseBAFunctionsProc; + pResults->pvBAFunctionsProcContext = pBAFunctions; + pBAFunctions = NULL; + +LExit: + ReleaseObject(pBAFunctions); + ReleaseObject(pEngine); + + return hr; +} -- cgit v1.2.3-55-g6feb