public void WillNotIncludeThePackageWhenTheDependencyVersionSpecDoesNotMatch(string dependentPackageId, string versionSpec)
            {
                var curator = new TestableRequiredDependencyPackageCurator();
                var package = CreateStubGalleryPackage();

                AddDependency(package, dependentPackageId, versionSpec);

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        It.IsAny <CuratedFeed>(),
                        It.IsAny <Package>(),
                        It.IsAny <bool>(),
                        It.IsAny <bool>(),
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    Times.Never());
            }
            public void WillSetTheAutomaticBitWhenIncludingThePackage()
            {
                var curator = new TestableRequiredDependencyPackageCurator();
                var package = CreateStubGalleryPackage();

                AddDependency(package, TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId, "3.0");

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        curator.StubCuratedFeed,
                        It.IsAny <Package>(),
                        It.IsAny <bool>(),
                        true,
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    Times.Once());
            }
            public void WillIgnorePatchLevelWhenComparingSemanticVersions(string versionSpec, bool shouldInclude)
            {
                var curator = new TestableRequiredDependencyPackageCurator();
                var package = CreateStubGalleryPackage();

                AddDependency(package, TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId, versionSpec);

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        curator.StubCuratedFeed,
                        It.IsAny <Package>(),
                        It.IsAny <bool>(),
                        It.IsAny <bool>(),
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    shouldInclude ? Times.Once() : Times.Never());
            }
            public void WillIncludeThePackageWhenItDependsOnAPackageThatIsNotOriginallyIncluded()
            {
                var curator = new TestableRequiredDependencyPackageCurator();
                var package = CreateStubGalleryPackage();

                AddDependency(package, TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId, "3.0");
                AddDependency(package, TestableRequiredDependencyPackageCurator.PackageDependencyPackageId, "3.0");

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        It.IsAny <CuratedFeed>(),
                        It.Is <Package>(p => p.PackageRegistration.Id == StubGalleryPackageId),
                        It.IsAny <bool>(),
                        It.IsAny <bool>(),
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    Times.Once());
            }
            public void WillNotIncludeThePackageWhenTheFeedDoesNotExist()
            {
                var curator = new TestableRequiredDependencyPackageCurator();
                var package = CreateStubGalleryPackage();

                AddDependency(package, TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId, "3.0");

                curator.FakeEntitiesContext.CuratedFeeds.Remove(curator.StubCuratedFeed);

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        It.IsAny <CuratedFeed>(),
                        It.IsAny <Package>(),
                        It.IsAny <bool>(),
                        It.IsAny <bool>(),
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    Times.Never());
            }
            public void WillIncludeThePackageWhenCuratedFeedDoesNotIncludeVersion()
            {
                var curator = new TestableRequiredDependencyPackageCurator
                {
                    StubCuratedFeed = { Name = TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId }
                };

                var package = CreateStubGalleryPackage();

                AddDependency(package, TestableRequiredDependencyPackageCurator.RequiredDependencyPackageId, "1.0");

                curator.Curate(package, null, commitChanges: true);

                curator.StubCuratedFeedService.Verify(
                    stub => stub.CreatedCuratedPackage(
                        curator.StubCuratedFeed,
                        It.IsAny <Package>(),
                        It.IsAny <bool>(),
                        It.IsAny <bool>(),
                        It.IsAny <string>(),
                        It.IsAny <bool>()),
                    Times.Once());
            }