public void OnPackageOperationMessageLogged_NoInvokeRequired_NonThreadSafeOnPackageOperationMessageLoggedMethodCalled()
        {
            CreateEvents();
            var    messageLevel = MessageLevel.Warning;
            string message      = "abc {0}";
            string arg          = "test";

            threadSafeEvents.OnPackageOperationMessageLogged(messageLevel, message, arg);

            Assert.AreEqual(messageLevel, fakeEvents.MessageLevelPassedToOnPackageOperationMessageLogged);
            Assert.AreEqual("abc test", fakeEvents.FormattedStringPassedToOnPackageOperationMessageLogged);
        }
        public void OnPackageOperationMessageLogged_NoInvokeRequired_NonThreadSafeOnPackageOperationMessageLoggedMethodCalled()
        {
            CreateEvents();
            MessageLevel actualLevel   = MessageLevel.Debug;
            string       actualMessage = null;

            unsafeEvents.PackageOperationMessageLogged += (sender, e) => {
                actualLevel   = e.Message.Level;
                actualMessage = e.Message.ToString();
            };

            var    messageLevel = MessageLevel.Warning;
            string message      = "abc {0}";
            string arg          = "test";

            threadSafeEvents.OnPackageOperationMessageLogged(messageLevel, message, arg);

            Assert.AreEqual(messageLevel, actualLevel);
            Assert.AreEqual("abc test", actualMessage);
        }