コード例 #1
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestBeforeSourcePackageFetch()
        {
            var before = false;

            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd("localhost", new MockPackageRepository(new List<IPackage>() {
                new DataServicePackage() {
                    Id = "A",
                    Version = "1.0.0"
                }
            }));

            var packages = new ServicePackageManager() {
                LocalRepository = new MockPackageRepository() {
                    Uri = Defines.PackagesDirectory.FullName
                },
                SourceRepositories = sources,
                BeforeSourcePackageFetch = () => before = true,
                PackageManagerDispatch = new MockPackageManagerDispatch()
            };

            packages.MergePackage("localhost", "A");

            Assert.IsTrue(before);
        }
コード例 #2
0
        public void TestAddNewCachedSourceRepository()
        {
            var packages = new ServicePackageManager();

            Assert.IsEmpty(packages.SourceRepositories);

            IPackageRepository repository = packages.GetCachedSourceRepository(Defines.PackagesDirectory.FullName);

            Assert.AreEqual(Defines.PackagesDirectory.FullName, repository.Source);
        }
コード例 #3
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestBeforeRepositoryInitialize()
        {
            var before = false;

            var packages = new ServicePackageManager() {
                BeforeRepositoryInitialize = () => before = true,
                PackageManagerDispatch = new MockPackageManagerDispatch()
            };

            packages.MergePackage("localhost", "A");

            Assert.IsTrue(before);
        }
コード例 #4
0
        public void TestRepositoryPulledFromCache()
        {
            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd(Defines.PackagesDirectory.FullName, PackageRepositoryFactory.Default.CreateRepository(Defines.PackagesDirectory.FullName));

            var packages = new ServicePackageManager() {
                SourceRepositories = sources
            };

            Assert.IsNotEmpty(packages.SourceRepositories);
            Assert.AreEqual(1, packages.SourceRepositories.Count);

            IPackageRepository repository = packages.GetCachedSourceRepository(Defines.PackagesDirectory.FullName);

            Assert.AreEqual(Defines.PackagesDirectory.FullName, repository.Source);
            Assert.AreEqual(1, packages.SourceRepositories.Count);
        }
コード例 #5
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestInstallAlreadyExistsCanceled()
        {
            var canceled = false;

            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd("localhost", new MockPackageRepository(new List<IPackage>() {
                new DataServicePackage() {
                    Id = "A",
                    Version = "1.0.0",
                    IsLatestVersion = true
                }
            }));

            var packages = new ServicePackageManager() {
                LocalRepository = new MockPackageRepository(new List<IPackage>() {
                    new DataServicePackage() {
                        Id = "A",
                        Version = "1.0.0"
                    }
                }) {
                    Uri = Defines.PackagesDirectory.FullName
                },
                SourceRepositories = sources,
                PackageActionCanceled = packageId => canceled = true,
                PackageManagerDispatch = new MockPackageManagerDispatch()
            };

            packages.MergePackage("localhost", "A");

            Assert.IsTrue(canceled);
        }
コード例 #6
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestUpdateDispatched()
        {
            var dispatcher = new MockPackageManagerDispatch();

            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd("localhost", new MockPackageRepository(new List<IPackage>() {
                new DataServicePackage() {
                    Id = "A",
                    Version = "2.0.0",
                    IsLatestVersion = true
                }
            }));

            var packages = new ServicePackageManager() {
                LocalRepository = new MockPackageRepository(new List<IPackage>() {
                    new DataServicePackage() {
                        Id = "A",
                        Version = "1.0.0"
                    }
                }) {
                    Uri = Defines.PackagesDirectory.FullName
                },
                PackageManagerDispatch = dispatcher,
                SourceRepositories = sources
            };

            packages.MergePackage("localhost", "A");

            Assert.IsTrue(dispatcher.DispatchedUpdatePackage);
        }
コード例 #7
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestOnRepositoryExceptionUpdatePackage()
        {
            var hint = "";

            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd("localhost", new MockPackageRepository(new List<IPackage>() {
                new DataServicePackage() {
                    Id = "A",
                    Version = "2.0.0",
                    IsLatestVersion = true
                }
            }));

            var packages = new ServicePackageManager() {
                LocalRepository = new MockPackageRepository(new List<IPackage>() {
                    new DataServicePackage() {
                        Id = "A",
                        Version = "1.0.0"
                    }
                }) {
                    Uri = Defines.PackagesDirectory.FullName
                },
                SourceRepositories = sources,
                RepositoryException = (h, exception) => hint = h
            };

            packages.MergePackage("localhost", "A");

            Assert.AreEqual("ServicePackages.MergePackage.UpdatePackage", hint);
        }
コード例 #8
0
ファイル: TestMergePackage.cs プロジェクト: EBassie/Potato
        public void TestOnRepositoryExceptionGeneral()
        {
            var hint = "";

            var packages = new ServicePackageManager() {
                RepositoryException = (h, exception) => hint = h,
                PackageManagerDispatch = new MockPackageManagerDispatch()
            };

            packages.MergePackage("localhost", "A");

            Assert.AreEqual("ServicePackages.MergePackage.GeneralCatch", hint);
        }
コード例 #9
0
        public void TestPackageMissing()
        {
            var missing = false;

            var sources = new ConcurrentDictionary<String, IPackageRepository>();

            sources.TryAdd("localhost", new MockPackageRepository(new List<IPackage>() {
                new DataServicePackage() {
                    Id = "A",
                    Version = "1.0.0"
                }
            }));

            var packages = new ServicePackageManager() {
                LocalRepository = new MockPackageRepository() {
                    Uri = Defines.PackagesDirectory.FullName
                },
                SourceRepositories = sources,
                PackageMissing = packageId => missing = true,
                PackageManagerDispatch = new MockPackageManagerDispatch()
            };

            packages.UninstallPackage("B");

            Assert.IsTrue(missing);
        }