public void ShouldThrowExceptionIfSomething()
        {
            _ioUtilsMock.Setup(io => io.OpenFile(SomeTargetLocation, FileMode.Create, FileAccess.Write))
            .Throws(new Exception("XYZ"));
            var uut = new FilePublisher(() => SomeTargetLocation);

            uut.Publish(_userProfileEvent, TestEventSource(1), () => { });
        }
        public void ShouldOpenFileForWriting()
        {
            var uut = new FilePublisher(() => SomeTargetLocation);

            uut.Publish(_userProfileEvent, TestEventSource(1), () => { });

            _ioUtilsMock.Verify(m => m.OpenFile(SomeTargetLocation, FileMode.Create, FileAccess.Write));
        }
        public void ProgressCallsArePassedThrough()
        {
            const int expected = 8;
            var       count    = 0;
            var       uut      = new FilePublisher(() => SomeTargetLocation);

            uut.Publish(null, TestEventSource(expected), () => count++);
            // +upe
            Assert.AreEqual(expected + 1, count);
        }
        public void AllSourceEventsArePublishedTogetherWithProfile()
        {
            var upe        = new UserProfileEvent();
            var testEvents = TestEventSource(10).ToList();

            var uut = new FilePublisher(() => SomeTargetLocation);

            uut.Publish(upe, testEvents, () => { });

            Assert.AreEqual(1, _exportedPackages.Count);
            var exported = _exportedPackages.SelectMany(e => e).ToList();

            CollectionAssert.AreEqual(testEvents.Prepend(upe), exported);
        }
        public void ShouldThrowExceptionOnEmptyArgument()
        {
            var uut = new FilePublisher(() => "");

            uut.Publish(_userProfileEvent, TestEventSource(1), () => { });
        }