Exemplo n.º 1
0
        public void Persist_RetainsSemVer2Version()
        {
            // Arrange
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(false);

            var memoryStream = new MemoryStream();

            fileSystem
            .Setup(x => x.CreateFile(CacheFileName))
            .Returns(memoryStream);

            var actual = new ServerPackageStore(fileSystem.Object, CacheFileName);

            actual.Store(new ServerPackage
            {
                Id      = PackageId,
                Version = SemVer2Version
            });

            // Act
            actual.Persist();

            // Assert
            var content = Encoding.UTF8.GetString(memoryStream.ToArray());

            Assert.Contains(SemVer2VersionString, content);
        }
        public async Task Remove_SupportsEnabledUnlisting()
        {
            // Arrange
            using (var directory = new TemporaryDirectory())
            {
                var fileSystem = new PhysicalFileSystem(directory);
                var repository = new ExpandedPackageRepository(fileSystem);
                var logger     = new Infrastructure.NullLogger();

                repository.AddPackage(CreatePackage(PackageId, PackageVersion));

                var target = new ServerPackageStore(fileSystem, repository, logger);

                // Act
                target.Remove(PackageId, PackageVersion, enableDelisting: true);

                // Assert
                var package = (await target.GetAllAsync(enableDelisting: true, token: Token)).SingleOrDefault();
                Assert.NotNull(package);
                Assert.Equal(PackageId, package.Id);
                Assert.Equal(PackageVersion, package.Version);
                Assert.False(package.Listed);

                var fileInfo = new FileInfo(package.FullPath);
                Assert.True(fileInfo.Exists);
                Assert.Equal(FileAttributes.Hidden, fileInfo.Attributes & FileAttributes.Hidden);
            }
        }
Exemplo n.º 3
0
        public void Constructor_LeavesValidCacheFile(string content, int count)
        {
            // Arrange
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(true);
            fileSystem
            .Setup(x => x.OpenFile(CacheFileName))
            .Returns(() => new MemoryStream(Encoding.UTF8.GetBytes(content)));

            // Act
            var actual = new ServerPackageStore(fileSystem.Object, CacheFileName);

            // Assert
            Assert.Equal(count, actual.GetAll().Count());
            fileSystem.Verify(x => x.DeleteFile(It.IsAny <string>()), Times.Never);
        }
Exemplo n.º 4
0
        public void Constructor_IgnoresAndDeletesInvalidCacheFile(string content)
        {
            // Arrange
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(true);
            fileSystem
            .Setup(x => x.OpenFile(CacheFileName))
            .Returns(() => new MemoryStream(Encoding.UTF8.GetBytes(content)));

            // Act
            var actual = new ServerPackageStore(fileSystem.Object, CacheFileName);

            // Assert
            Assert.Empty(actual.GetAll());
            fileSystem.Verify(x => x.DeleteFile(CacheFileName), Times.Once);
        }
        public async Task Remove_SupportsDisabledUnlisting()
        {
            // Arrange
            using (var directory = new TemporaryDirectory())
            {
                var fileSystem = new PhysicalFileSystem(directory);
                var repository = new ExpandedPackageRepository(fileSystem);
                var logger     = new Infrastructure.NullLogger();

                repository.AddPackage(CreatePackage(PackageId, PackageVersion));

                var target = new ServerPackageStore(fileSystem, repository, logger);

                // Act
                target.Remove(PackageId, PackageVersion, enableDelisting: false);

                // Assert
                Assert.Empty(await target.GetAllAsync(enableDelisting: false, token: Token));
                Assert.Empty(repository.GetPackages());
            }
        }
Exemplo n.º 6
0
        public void Constructor_DeserializesIsSemVer2(string serialized, bool expected)
        {
            // Arrange
            var cacheFile  = "{\"SchemaVersion\":\"3.0.0\",\"Packages\":[{\"Id\":\"" + PackageId + "\",\"Version\":\"" + SemVer2VersionString + "\",\"IsSemVer2\":" + serialized + "}]}";
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(true);
            fileSystem
            .Setup(x => x.OpenFile(CacheFileName))
            .Returns(() => new MemoryStream(Encoding.UTF8.GetBytes(cacheFile)));

            // Act
            var actual = new ServerPackageStore(fileSystem.Object, CacheFileName);

            // Assert
            Assert.Equal(1, actual.GetAll().Count());
            var package = actual.GetAll().First();

            Assert.Equal(expected, package.IsSemVer2);
        }
        public async Task Remove_NoOpsWhenPackageDoesNotExist()
        {
            // Arrange
            using (var directory = new TemporaryDirectory())
            {
                var fileSystem = new PhysicalFileSystem(directory);
                var repository = new ExpandedPackageRepository(fileSystem);
                var logger     = new Infrastructure.NullLogger();

                repository.AddPackage(CreatePackage(PackageId, PackageVersion));

                var target = new ServerPackageStore(fileSystem, repository, logger);

                // Act
                target.Remove("Foo", PackageVersion, enableDelisting: false);

                // Assert
                var package = (await target.GetAllAsync(enableDelisting: false, token: Token)).FirstOrDefault();
                Assert.NotNull(package);
                Assert.Equal(PackageId, package.Id);
                Assert.Equal(PackageVersion, package.Version);
                Assert.True(package.Listed);
            }
        }