public void IncrementVersionsUnder_ShouldTellEachUtilToSetPackageDependencyIfExists_ForEachOtherNuspecUtil()
        {
            //---------------Set up test pack-------------------
            var path1   = RandomValueGen.GetRandomFileName();
            var path2   = RandomValueGen.GetRandomFileName();
            var util1   = CreateRandomNuspecUtil();
            var util2   = CreateRandomNuspecUtil(util1.PackageId);
            var factory = Substitute.For <INuspecUtilFactory>();

            factory.LoadNuspecAt(path1).Returns(util1);
            factory.LoadNuspecAt(path2).Returns(util2);
            var finder = Substitute.For <INuspecFinder>();

            finder.NuspecPaths.Returns(new[] { path1, path2 });
            var sut = Create(finder, factory);

            //---------------Assert Precondition----------------
            Assert.AreNotEqual(util1.PackageId, util2.PackageId);

            //---------------Execute Test ----------------------
            sut.IncrementVersionsUnder(RandomValueGen.GetRandomString());

            //---------------Test Result -----------------------
            util1.Received(1).SetPackageDependencyVersionIfExists(util2.PackageId, util2.Version);
            util2.Received(1).SetPackageDependencyVersionIfExists(util1.PackageId, util1.Version);

            var packageId = util1.PackageId;
            var version   = util1.Version;

            util1.DidNotReceive().SetPackageDependencyVersionIfExists(packageId, version);
            packageId = util2.PackageId;
            version   = util2.Version;
            util2.DidNotReceive().SetPackageDependencyVersionIfExists(packageId, version);
        }
 public override EmailAttachmentBuilder WithRandomProps()
 {
     return(base.WithRandomProps()
            .WithProp(a => a.Name = RandomValueGen.GetRandomFileName())
            .WithProp(a => a.Data = RandomValueGen.GetRandomBytes(1))
            .WithProp(a => a.Enabled = true));
 }
        public void IncrementVersionsUnder_ShouldPersistAfterDoingIncrements_ForEachOtherNuspecUtil()
        {
            //---------------Set up test pack-------------------
            var path1      = RandomValueGen.GetRandomFileName();
            var path2      = RandomValueGen.GetRandomFileName();
            var util1      = CreateRandomNuspecUtil();
            var util2      = CreateRandomNuspecUtil(util1.PackageId);
            var packageId1 = util1.PackageId;
            var packageId2 = util2.PackageId;
            var version1   = util1.Version;
            var version2   = util2.Version;
            var factory    = Substitute.For <INuspecUtilFactory>();

            factory.LoadNuspecAt(path1).Returns(util1);
            factory.LoadNuspecAt(path2).Returns(util2);
            var finder = Substitute.For <INuspecFinder>();

            finder.NuspecPaths.Returns(new[] { path1, path2 });
            var sut = Create(finder, factory);

            //---------------Assert Precondition----------------
            Expect(util1.PackageId)
            .Not.To.Equal(util2.PackageId);

            //---------------Execute Test ----------------------
            sut.IncrementVersionsUnder(RandomValueGen.GetRandomString());

            //---------------Test Result -----------------------
            Received.InOrder(() =>
            {
                util1.EnsureSameDependencyGroupForAllTargetFrameworks();
                util1.IncrementVersion();
                util2.EnsureSameDependencyGroupForAllTargetFrameworks();
                util2.IncrementVersion();

                util1.SetPackageDependencyVersionIfExists(packageId2, version2);
                util2.SetPackageDependencyVersionIfExists(packageId1, version1);

                util1.Persist();
                util2.Persist();
            });
        }