aboutsummaryrefslogtreecommitdiff
path: root/src/test/BurnUnitTest/CacheTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/BurnUnitTest/CacheTest.cpp')
-rw-r--r--src/test/BurnUnitTest/CacheTest.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/test/BurnUnitTest/CacheTest.cpp b/src/test/BurnUnitTest/CacheTest.cpp
new file mode 100644
index 00000000..9b3c6e64
--- /dev/null
+++ b/src/test/BurnUnitTest/CacheTest.cpp
@@ -0,0 +1,72 @@
1// 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.
2
3#include "precomp.h"
4
5
6namespace Microsoft
7{
8namespace Tools
9{
10namespace WindowsInstallerXml
11{
12namespace Test
13{
14namespace Bootstrapper
15{
16 using namespace System;
17 using namespace System::IO;
18 using namespace WixTest;
19 using namespace Xunit;
20
21 public ref class CacheTest : BurnUnitTest
22 {
23 public:
24 [NamedFact]
25 void CacheSignatureTest()
26 {
27 HRESULT hr = S_OK;
28 BURN_PACKAGE package = { };
29 BURN_PAYLOAD payload = { };
30 LPWSTR sczPayloadPath = NULL;
31 BYTE* pb = NULL;
32 DWORD cb = NULL;
33
34 try
35 {
36 pin_ptr<const wchar_t> dataDirectory = PtrToStringChars(TestContext->DataDirectory);
37 hr = PathConcat(dataDirectory, L"BurnTestPayloads\\Products\\TestExe\\TestExe.exe", &sczPayloadPath);
38 Assert::True(S_OK == hr, "Failed to get path to test file.");
39 Assert::True(FileExistsEx(sczPayloadPath, NULL), "Test file does not exist.");
40
41 hr = StrAllocHexDecode(L"232BD16B78C1926F95D637731E1EE5379A3C4222", &pb, &cb);
42 Assert::Equal(S_OK, hr);
43
44 package.fPerMachine = FALSE;
45 package.sczCacheId = L"Bootstrapper.CacheTest.CacheSignatureTest";
46 payload.sczKey = L"CacheSignatureTest.PayloadKey";
47 payload.sczFilePath = L"CacheSignatureTest.File";
48 payload.pbHash = pb;
49 payload.cbHash = cb;
50
51 hr = CacheCompletePayload(package.fPerMachine, &payload, package.sczCacheId, sczPayloadPath, FALSE);
52 Assert::Equal(S_OK, hr);
53 }
54 finally
55 {
56 ReleaseMem(pb);
57 ReleaseStr(sczPayloadPath);
58
59 String^ filePath = Path::Combine(Environment::GetFolderPath(Environment::SpecialFolder::LocalApplicationData), "Package Cache\\Bootstrapper.CacheTest.CacheSignatureTest\\CacheSignatureTest.File");
60 if (File::Exists(filePath))
61 {
62 File::SetAttributes(filePath, FileAttributes::Normal);
63 File::Delete(filePath);
64 }
65 }
66 }
67 };
68}
69}
70}
71}
72}