public void VerifyTemplate(string wimFileName, bool result) { string wimFile = Path.Combine(TestSetup.SampleDir, wimFileName); bool[] _checked = new bool[3]; for (int i = 0; i < _checked.Length; i++) { _checked[i] = false; } CallbackStatus ProgressCallback(ProgressMsg msg, object info, object progctx) { Console.WriteLine($"Callback msg={msg}"); switch (msg) { case ProgressMsg.BeginVerifyImage: { VerifyImageProgress m = (VerifyImageProgress)info; Assert.IsNotNull(m); _checked[0] = true; } break; case ProgressMsg.EndVerifyImage: { VerifyImageProgress m = (VerifyImageProgress)info; Assert.IsNotNull(m); _checked[1] = true; } break; case ProgressMsg.VerifyStreams: { VerifyStreamsProgress m = (VerifyStreamsProgress)info; Assert.IsNotNull(m); Console.WriteLine($"Bytes={m.CurrentBytes}/{m.TotalBytes}, {m.CurrentStreams}/{m.TotalStreams}"); _checked[2] = true; } break; } return(CallbackStatus.Continue); } try { using (Wim wim = Wim.OpenWim(wimFile, OpenFlags.None)) { wim.RegisterCallback(ProgressCallback); wim.VerifyWim(); } } catch (WimLibException) { if (result) { Assert.Fail(); } else { return; } } Assert.IsTrue(_checked.All(x => x)); }
public void VerifySplitTemplate(string wimFileName, string splitWildcard, bool result) { string wimFile = Path.Combine(TestSetup.SampleDir, wimFileName); string splitWimFiles = Path.Combine(TestSetup.SampleDir, splitWildcard); bool[] _checked = new bool[3]; for (int i = 0; i < _checked.Length; i++) { _checked[i] = false; } CallbackStatus ProgressCallback(ProgressMsg msg, object info, object progctx) { switch (msg) { case ProgressMsg.BeginVerifyImage: { VerifyImageProgress m = (VerifyImageProgress)info; Assert.IsNotNull(info); _checked[0] = true; } break; case ProgressMsg.EndVerifyImage: { VerifyImageProgress m = (VerifyImageProgress)info; Assert.IsNotNull(info); _checked[1] = true; } break; case ProgressMsg.VerifyStreams: { VerifyStreamsProgress m = (VerifyStreamsProgress)info; Assert.IsNotNull(info); _checked[2] = true; } break; } return(CallbackStatus.Continue); } try { using (Wim wim = Wim.OpenWim(wimFile, OpenFlags.None)) { wim.RegisterCallback(ProgressCallback); wim.ReferenceResourceFile(splitWimFiles, RefFlags.GlobEnable | RefFlags.GlobErrOnNoMatch, OpenFlags.None); wim.VerifyWim(); } } catch (WimLibException) { if (result) { Assert.Fail(); } else { return; } } Assert.IsTrue(_checked.All(x => x)); }