Esempio 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 ServerPackageCache(fileSystem.Object, CacheFileName);

            actual.Add(new ServerPackage
            {
                Id      = PackageId,
                Version = SemVer2Version
            }, enableDelisting: false);

            // Act
            actual.Persist();

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

            Assert.Contains(SemVer2VersionString, content);
        }
Esempio n. 2
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 ServerPackageCache(fileSystem.Object, CacheFileName);

            // Assert
            Assert.Equal(count, actual.GetAll().Count());
            fileSystem.Verify(x => x.DeleteFile(It.IsAny <string>()), Times.Never);
        }
Esempio n. 3
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 ServerPackageCache(fileSystem.Object, CacheFileName);

            // Assert
            Assert.Empty(actual.GetAll());
            fileSystem.Verify(x => x.DeleteFile(CacheFileName), Times.Once);
        }
Esempio n. 4
0
        public void Remove_SupportsDisabledUnlisting()
        {
            // 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(MinimalCacheFile)));
            var target = new ServerPackageCache(fileSystem.Object, CacheFileName);

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

            // Assert
            Assert.Empty(target.GetAll());
        }
        public void Exists_ReturnsTrueWhenPackageExists()
        {
            // Arrange
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(false);
            var target = new ServerPackageCache(fileSystem.Object, CacheFileName);

            target.Add(new ServerPackage {
                Id = "NuGet.Versioning", Version = new SemanticVersion("3.5.0-beta2")
            });

            // Act
            var actual = target.Exists("NuGet.Versioning", new SemanticVersion("3.5.0-beta2"));

            // Assert
            Assert.True(actual);
        }
Esempio n. 6
0
        public void Exists_IsCaseInsensitive()
        {
            // Arrange
            var fileSystem = new Mock <IFileSystem>();

            fileSystem
            .Setup(x => x.FileExists(CacheFileName))
            .Returns(false);
            var target = new ServerPackageCache(fileSystem.Object, CacheFileName);

            target.Add(new ServerPackage
            {
                Id      = "NuGet.Versioning",
                Version = new SemanticVersion("3.5.0-beta2"),
            }, enableDelisting: false);

            // Act
            var actual = target.Exists("nuget.versioning", new SemanticVersion("3.5.0-BETA2"));

            // Assert
            Assert.True(actual);
        }
Esempio n. 7
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 ServerPackageCache(fileSystem.Object, CacheFileName);

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

            Assert.Equal(expected, package.IsSemVer2);
        }
Esempio n. 8
0
        public void Remove_NoOpsWhenPackageDoesNotExist()
        {
            // 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(MinimalCacheFile)));
            var target = new ServerPackageCache(fileSystem.Object, CacheFileName);

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

            // Assert
            var package = target.GetAll().FirstOrDefault();

            Assert.NotNull(package);
            Assert.Equal(PackageId, package.Id);
            Assert.Equal(PackageVersion, package.Version);
        }