コード例 #1
0
        public void Clone_Always_CreatesDeepClone()
        {
            IReadOnlyList <string> exclude      = new[] { "a" };
            IReadOnlyList <string> excludeFiles = new[] { "b" };
            IReadOnlyList <string> include      = new[] { "c" };
            IReadOnlyList <string> includeFiles = new[] { "d" };

            var expectedResult = new IncludeExcludeFiles()
            {
                Exclude      = exclude,
                ExcludeFiles = excludeFiles,
                Include      = include,
                IncludeFiles = includeFiles
            };
            int expectedHashCode = expectedResult.GetHashCode();

            IncludeExcludeFiles actualResult = expectedResult.Clone();
            int actualHashCode = actualResult.GetHashCode();

            Assert.NotSame(expectedResult, actualResult);
            Assert.Equal(expectedResult, actualResult);
            Assert.Equal(expectedHashCode, actualHashCode);
            Assert.NotSame(expectedResult.Exclude, actualResult.Exclude);
            Assert.Equal(exclude, actualResult.Exclude);
            Assert.NotSame(expectedResult.ExcludeFiles, actualResult.ExcludeFiles);
            Assert.Equal(excludeFiles, actualResult.ExcludeFiles);
            Assert.NotSame(expectedResult.Include, actualResult.Include);
            Assert.Equal(include, actualResult.Include);
            Assert.NotSame(expectedResult.IncludeFiles, actualResult.IncludeFiles);
            Assert.Equal(includeFiles, actualResult.IncludeFiles);
        }
コード例 #2
0
        public void Equals_WithOther_ReturnsCorrectValue()
        {
            var files1 = new IncludeExcludeFiles();
            var files2 = new IncludeExcludeFiles();

            Assert.False(files1.Equals(other: null));
            Assert.True(files1.Equals(other: files1));
            Assert.True(files1.Equals(other: files2));

            var files = new List <string>()
            {
                "a"
            };

            files1.Exclude = files;
            Assert.False(files1.Equals(files2));
            files2.Exclude = files;
            Assert.True(files1.Equals(files2));

            files1.ExcludeFiles = files;
            Assert.False(files1.Equals(files2));
            files2.ExcludeFiles = files;
            Assert.True(files1.Equals(files2));

            files1.Include = files;
            Assert.False(files1.Equals(files2));
            files2.Include = files;
            Assert.True(files1.Equals(files2));

            files1.IncludeFiles = files;
            Assert.False(files1.Equals(files2));
            files2.IncludeFiles = files;
            Assert.True(files1.Equals(files2));
        }
コード例 #3
0
        public void HandleIncludeExcludeFiles_WhenJsonObjectIsNull_Throws()
        {
            var files = new IncludeExcludeFiles();

            ArgumentNullException exception = Assert.Throws <ArgumentNullException>(
                () => files.HandleIncludeExcludeFiles(jsonObject: null));

            Assert.Equal("jsonObject", exception.ParamName);
        }
コード例 #4
0
        public void Constructor_Always_InitializesProperties()
        {
            var files = new IncludeExcludeFiles();

            Assert.Null(files.Exclude);
            Assert.Null(files.ExcludeFiles);
            Assert.Null(files.Include);
            Assert.Null(files.IncludeFiles);
        }
コード例 #5
0
        public void HandleIncludeExcludeFiles_WithNullForFiles_ReturnsFalse(string json)
        {
            JObject jsonObject = JObject.Parse(json);
            var     files      = new IncludeExcludeFiles();

            Assert.False(files.HandleIncludeExcludeFiles(jsonObject));
            Assert.Null(files.Exclude);
            Assert.Null(files.ExcludeFiles);
            Assert.Null(files.Include);
            Assert.Null(files.IncludeFiles);
        }
コード例 #6
0
        public void Equals_WithObj_ReturnsCorrectValue()
        {
            var files1 = new IncludeExcludeFiles();
            var files2 = new IncludeExcludeFiles();

            Assert.False(files1.Equals(obj: null));
            Assert.False(files1.Equals(obj: "b"));
            Assert.False(files1.Equals(obj: new object()));
            Assert.True(files1.Equals(obj: files1));
            Assert.True(files1.Equals(obj: files2));
        }
コード例 #7
0
        public void HandleIncludeExcludeFiles_WithValidValueForInclude_ReturnsTrue(
            string json,
            params string[] expectedResults)
        {
            JObject jsonObject = JObject.Parse(json);
            var     files      = new IncludeExcludeFiles();

            Assert.True(files.HandleIncludeExcludeFiles(jsonObject));

            Assert.Null(files.Exclude);
            Assert.Null(files.ExcludeFiles);
            Assert.Equal(expectedResults, files.Include);
            Assert.Null(files.IncludeFiles);
        }
コード例 #8
0
        public void IncludeExcludeFilesCloneTest()
        {
            //Set up
            var exclude = new List <string>()
            {
                "Exlclude0"
            };
            var include = new List <string>()
            {
                "Include0"
            };
            var includeFiles = new List <string>()
            {
                "IncludeFiles0"
            };
            var excludeFiles = new List <string>()
            {
                "ExlcludeFiles0"
            };

            var files = new IncludeExcludeFiles();

            files.Exclude      = exclude;
            files.Include      = include;
            files.IncludeFiles = includeFiles;
            files.ExcludeFiles = excludeFiles;

            // Act
            var clone = files.Clone();

            //Assert

            Assert.Equal(files.Exclude, clone.Exclude);
            Assert.Equal(files.Include, clone.Include);
            Assert.Equal(files.IncludeFiles, clone.IncludeFiles);
            Assert.Equal(files.ExcludeFiles, clone.ExcludeFiles);

            // Act again
            exclude.Add("Extra Exclude");

            //Assert
            Assert.Equal(2, files.Exclude.Count);
            Assert.NotEqual(files.Exclude, clone.Exclude);
        }
コード例 #9
0
        private static void CalculateExcludes(IncludeExcludeFiles files, out string fullExclude, out string filesExclude)
        {
            fullExclude  = string.Empty;
            filesExclude = string.Empty;
            if (files.Exclude != null &&
                files.Exclude.Any())
            {
                fullExclude = string.Join(";", files.Exclude);
            }

            if (files.ExcludeFiles != null &&
                files.ExcludeFiles.Any())
            {
                if (!string.IsNullOrEmpty(fullExclude))
                {
                    fullExclude += ";";
                }
                filesExclude += string.Join(";", files.ExcludeFiles);
                fullExclude  += filesExclude;
            }
        }
コード例 #10
0
        private IncludeExcludeFiles CreateIncludeExcludeFiles()
        {
            var files = new IncludeExcludeFiles();

            files.Exclude = new List <string>()
            {
                "Exlclude0"
            };
            files.Include = new List <string>()
            {
                "Include0"
            };
            files.IncludeFiles = new List <string>()
            {
                "IncludeFiles0"
            };
            files.ExcludeFiles = new List <string>()
            {
                "ExlcludeFiles0"
            };
            return(files);
        }
コード例 #11
0
        public void GetHashCode_Always_HashesAllProperties()
        {
            IReadOnlyList <string> exclude      = new[] { "a" };
            IReadOnlyList <string> excludeFiles = new[] { "b" };
            IReadOnlyList <string> include      = new[] { "c" };
            IReadOnlyList <string> includeFiles = new[] { "d" };

            int expectedResult = GetExpectedHashCode(exclude, excludeFiles, include, includeFiles);

            var files = new IncludeExcludeFiles();

            Assert.Equal(0, files.GetHashCode());

            files.Exclude      = exclude;
            files.ExcludeFiles = excludeFiles;
            files.Include      = include;
            files.IncludeFiles = includeFiles;

            int actualResult = files.GetHashCode();

            Assert.Equal(expectedResult, actualResult);
        }
コード例 #12
0
        public void PackOptionsCloneTest()
        {
            //Set up
            var originalPackOptions = new PackOptions();
            var originalPackageName = "PackageA";
            var packageTypes        = new List <NuGet.Packaging.Core.PackageType>()
            {
                new Packaging.Core.PackageType(originalPackageName, new System.Version("1.0.0"))
            };

            var exclude = new List <string>()
            {
                "Exlclude0"
            };
            var include = new List <string>()
            {
                "Include0"
            };
            var includeFiles = new List <string>()
            {
                "IncludeFiles0"
            };
            var excludeFiles = new List <string>()
            {
                "ExlcludeFiles0"
            };

            var files = new IncludeExcludeFiles();

            files.Exclude      = exclude;
            files.Include      = include;
            files.IncludeFiles = includeFiles;
            files.ExcludeFiles = excludeFiles;

            originalPackOptions.PackageType         = packageTypes;
            originalPackOptions.IncludeExcludeFiles = files;

            // Act
            var clone = originalPackOptions.Clone();

            // Assert
            Assert.Equal(originalPackOptions, clone);

            // Act again
            packageTypes.Clear();

            // Assert
            Assert.NotEqual(originalPackOptions, clone);
            Assert.Equal(originalPackageName, clone.PackageType[0].Name);

            // Set Up again
            originalPackOptions.Mappings.Add("randomString", files);

            // Act again
            var cloneWithMappings = originalPackOptions.Clone();

            // Assert
            Assert.Equal(originalPackOptions, cloneWithMappings);

            // Act again
            originalPackOptions.Mappings.Clear();

            // Assert
            Assert.NotEqual(originalPackOptions, cloneWithMappings);
            Assert.Equal(1, cloneWithMappings.Mappings.Count);
        }
コード例 #13
0
 private bool ShouldInclude(string path)
 {
     return(ExcludeList
         ? !IncludeExcludeFiles.Contains(Path.GetFileName(path))
         : IncludeExcludeFiles.Contains(Path.GetFileName(path)));
 }