public void TestCsprojToolsVersion() { var projFiles = TestUtils.GetDotNetSourceDir().GetFiles("*.csproj", SearchOption.AllDirectories) .Where(x => !x.FullName.ToLower().Contains("dotnetcore")).ToArray(); Assert.GreaterOrEqual(projFiles.Length, 7); CheckFiles(projFiles, x => !x.Contains("ToolsVersion=\"4.0\""), "Invalid csproj files: "); }
/// <summary> /// Gets the csproj files that go to the release binary package. /// </summary> private static IEnumerable <FileInfo> GetReleaseCsprojFiles() { return(TestUtils.GetDotNetSourceDir().GetFiles("*.csproj", SearchOption.AllDirectories) .Where(x => x.Name != "Apache.Ignite.csproj" && !x.Name.Contains("Test") && !x.Name.Contains("Example") && !x.Name.Contains("DotNetCore") && !x.Name.Contains("Benchmark"))); }
public void TestSlnToolsVersion() { var slnFiles = TestUtils.GetDotNetSourceDir().GetFiles("*.sln", SearchOption.AllDirectories) .Where(x => !x.Name.Contains("DotNetCore")).ToArray(); Assert.GreaterOrEqual(slnFiles.Length, 2); CheckFiles(slnFiles, x => !x.Contains("# Visual Studio 2010") || !x.Contains("Microsoft Visual Studio Solution File, Format Version 11.00"), "Invalid sln files: "); }
public void TestAllCsharpFilesAreIncludedInProject() { var projFiles = TestUtils.GetDotNetSourceDir().GetFiles("*.csproj", SearchOption.AllDirectories) .Where(x => !x.Name.Contains("DotNetCore") && !x.Name.Contains("Benchmark") && !x.FullName.Contains("templates") && !x.FullName.Contains("examples")); var excludedFiles = new[] { "IgnitionStartTest.cs", "ShellTests.cs", "Common\\TestFixtureSetUp.cs", "Common\\TestFixtureTearDown.cs", "Client\\Cache\\CacheTestAsyncAwait.cs", "Cache\\CacheTestAsyncAwait.cs", "Compute\\ComputeTestAsyncAwait.cs" }; Assert.Multiple(() => { foreach (var projFile in projFiles) { Assert.IsNotNull(projFile.Directory); var projFileText = File.ReadAllText(projFile.FullName); var csFiles = projFile.Directory.GetFiles("*.cs", SearchOption.AllDirectories); foreach (var csFile in csFiles) { // Csproj uses the same path separator on all platforms. var csFileRelativePath = Path.GetRelativePath(projFile.Directory.FullName, csFile.FullName) .Replace(Path.DirectorySeparatorChar, '\\'); if (csFileRelativePath.StartsWith("bin\\") || csFileRelativePath.StartsWith("obj\\") || csFileRelativePath.Contains("DotNetCore") || csFileRelativePath.Contains("Examples") || excludedFiles.Contains(csFileRelativePath)) { continue; } Assert.IsTrue( projFileText.Contains(csFileRelativePath), string.Format("Project file '{0}' should contain file '{1}'", projFile.Name, csFile)); } } }); }
public void TestAsciiChars() { var allowedFiles = new[] { "BinaryStringTest.cs", "BinarySelfTest.cs", "CacheDmlQueriesTest.cs", "CacheTest.cs" }; var srcFiles = TestUtils.GetDotNetSourceDir() .GetFiles("*.cs", SearchOption.AllDirectories) .Where(x => !allowedFiles.Contains(x.Name)); CheckFiles(srcFiles, x => x.Any(ch => ch > 255), "Files with non-ASCII chars: "); }
public void TestCsprojTargetFramework() { var projFiles = TestUtils.GetDotNetSourceDir() .GetFiles("*.csproj", SearchOption.AllDirectories) .Where(x => !x.FullName.ToLower().Contains("dotnetcore") && !x.FullName.Contains("Benchmark") && !x.FullName.Contains("templates") && !x.FullName.Contains("examples")) .ToArray(); Assert.GreaterOrEqual(projFiles.Length, 7); CheckFiles( projFiles, x => !x.Contains("<TargetFramework>net461</TargetFramework>") && !x.Contains("<TargetFramework>netstandard2.0</TargetFramework>"), "Invalid csproj files: "); }
public void TestImplNamespaceHasNoPublicTypes() { var excluded = new[] { "ProjectFilesTest.cs", "CopyOnWriteConcurrentDictionary.cs", "IgniteArgumentCheck.cs", "DelegateConverter.cs", "IgniteHome.cs", "TypeCaster.cs", "FutureType.cs", "CollectionExtensions.cs", "IQueryEntityInternal.cs", "ICacheInternal.cs", "CacheEntry.cs", "HandleRegistry.cs", "BinaryObjectHeader.cs" }; var csFiles = TestUtils.GetDotNetSourceDir().GetFiles("*.cs", SearchOption.AllDirectories); foreach (var csFile in csFiles) { if (excluded.Contains(csFile.Name)) { continue; } var text = File.ReadAllText(csFile.FullName); if (!text.Contains("namespace Apache.Ignite.Core.Impl")) { continue; } StringAssert.DoesNotContain("public class", text, csFile.FullName); StringAssert.DoesNotContain("public static class", text, csFile.FullName); StringAssert.DoesNotContain("public interface", text, csFile.FullName); StringAssert.DoesNotContain("public enum", text, csFile.FullName); StringAssert.DoesNotContain("public struct", text, csFile.FullName); } }