Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }