Эх сурвалжийг харах

split up ProtoCompile tests to individual files

Jan Tattermusch 7 жил өмнө
parent
commit
86df93d4e1

+ 70 - 0
src/csharp/Grpc.Tools.Tests/ProtoCompileBasicTests.cs

@@ -0,0 +1,70 @@
+#region Copyright notice and license
+
+// Copyright 2018 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#endregion
+
+using System.Reflection;
+using Microsoft.Build.Framework;
+using Moq;
+using NUnit.Framework;
+
+namespace Grpc.Tools.Tests {
+  public class ProtoCompileBasicTests {
+    // Mock task class that stops right before invoking protoc.
+    public class ProtoCompileTestable : ProtoCompile {
+      public string LastPathToTool { get; private set; }
+      public string[] LastResponseFile { get; private set; }
+
+      protected override int ExecuteTool(string pathToTool,
+                                         string response,
+                                         string commandLine) {
+        // We should never be using command line commands.
+        Assert.That(commandLine, Is.Null | Is.Empty);
+
+        // Must receive a path to tool
+        Assert.That(pathToTool, Is.Not.Null & Is.Not.Empty);
+        Assert.That(response, Is.Not.Null & Does.EndWith("\n"));
+
+        LastPathToTool = pathToTool;
+        LastResponseFile = response.Remove(response.Length - 1).Split('\n');
+
+        // Do not run the tool, but pretend it ran successfully.
+        return 0;
+      }
+    };
+
+    protected Mock<IBuildEngine> _mockEngine;
+    protected ProtoCompileTestable _task;
+
+    [SetUp]
+    public void SetUp() {
+      _mockEngine = new Mock<IBuildEngine>();
+      _task = new ProtoCompileTestable {
+        BuildEngine = _mockEngine.Object
+      };
+    }
+
+    [TestCase("ProtoBuf")]
+    [TestCase("Generator")]
+    [TestCase("OutputDir")]
+    [Description("We trust MSBuild to initialize these properties.")]
+    public void RequiredAttributePresentOnProperty(string prop) {
+      var pinfo = _task.GetType()?.GetProperty(prop);
+      Assert.NotNull(pinfo);
+      Assert.That(pinfo, Has.Attribute<RequiredAttribute>());
+    }
+  }
+}

+ 1 - 71
src/csharp/Grpc.Tools.Tests/ProtoCompileTaskTest.cs → src/csharp/Grpc.Tools.Tests/ProtoCompileCommandLineGeneratorTests.cs

@@ -22,52 +22,6 @@ using Moq;
 using NUnit.Framework;
 
 namespace Grpc.Tools.Tests {
-  public class ProtoCompileBasicTests {
-    // Mock task class that stops right before invoking protoc.
-    public class ProtoCompileTestable : ProtoCompile {
-      public string LastPathToTool { get; private set; }
-      public string[] LastResponseFile { get; private set; }
-
-      protected override int ExecuteTool(string pathToTool,
-                                         string response,
-                                         string commandLine) {
-        // We should never be using command line commands.
-        Assert.That(commandLine, Is.Null | Is.Empty);
-
-        // Must receive a path to tool
-        Assert.That(pathToTool, Is.Not.Null & Is.Not.Empty);
-        Assert.That(response, Is.Not.Null & Does.EndWith("\n"));
-
-        LastPathToTool = pathToTool;
-        LastResponseFile = response.Remove(response.Length - 1).Split('\n');
-
-        // Do not run the tool, but pretend it ran successfully.
-        return 0;
-      }
-    };
-
-    protected Mock<IBuildEngine> _mockEngine;
-    protected ProtoCompileTestable _task;
-
-    [SetUp]
-    public void SetUp() {
-      _mockEngine = new Mock<IBuildEngine>();
-      _task = new ProtoCompileTestable {
-        BuildEngine = _mockEngine.Object
-      };
-    }
-
-    [TestCase("ProtoBuf")]
-    [TestCase("Generator")]
-    [TestCase("OutputDir")]
-    [Description("We trust MSBuild to initialize these properties.")]
-    public void RequiredAttributePresentOnProperty(string prop) {
-      var pinfo = _task.GetType()?.GetProperty(prop);
-      Assert.NotNull(pinfo);
-      Assert.That(pinfo, Has.Attribute<RequiredAttribute>());
-    }
-  };
-
   internal class ProtoCompileCommandLineGeneratorTests : ProtoCompileBasicTests {
     [SetUp]
     public new void SetUp() {
@@ -204,29 +158,5 @@ namespace Grpc.Tools.Tests {
       Assert.That(_task.LastResponseFile,
                   Does.Contain("--csharp_out=" + expect));
     }
-  };
-
-  internal class ProtoCompileCommandLinePrinterTests : ProtoCompileBasicTests {
-    [SetUp]
-    public new void SetUp() {
-      _task.Generator = "csharp";
-      _task.OutputDir = "outdir";
-      _task.ProtoBuf = Utils.MakeSimpleItems("a.proto");
-
-      _mockEngine
-        .Setup(me => me.LogMessageEvent(It.IsAny<BuildMessageEventArgs>()))
-        .Callback((BuildMessageEventArgs e) =>
-            Assert.Fail($"Error logged by build engine:\n{e.Message}"))
-        .Verifiable("Command line was not output by the task.");
-    }
-
-    void ExecuteExpectSuccess() {
-      _mockEngine
-        .Setup(me => me.LogErrorEvent(It.IsAny<BuildErrorEventArgs>()))
-        .Callback((BuildErrorEventArgs e) =>
-            Assert.Fail($"Error logged by build engine:\n{e.Message}"));
-      bool result = _task.Execute();
-      Assert.IsTrue(result);
-    }
-  };
+  }
 }

+ 48 - 0
src/csharp/Grpc.Tools.Tests/ProtoCompileCommandLinePrinterTests.cs

@@ -0,0 +1,48 @@
+#region Copyright notice and license
+
+// Copyright 2018 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#endregion
+
+using System.Reflection;
+using Microsoft.Build.Framework;
+using Moq;
+using NUnit.Framework;
+
+namespace Grpc.Tools.Tests {
+  internal class ProtoCompileCommandLinePrinterTests : ProtoCompileBasicTests {
+    [SetUp]
+    public new void SetUp() {
+      _task.Generator = "csharp";
+      _task.OutputDir = "outdir";
+      _task.ProtoBuf = Utils.MakeSimpleItems("a.proto");
+
+      _mockEngine
+        .Setup(me => me.LogMessageEvent(It.IsAny<BuildMessageEventArgs>()))
+        .Callback((BuildMessageEventArgs e) =>
+            Assert.Fail($"Error logged by build engine:\n{e.Message}"))
+        .Verifiable("Command line was not output by the task.");
+    }
+
+    void ExecuteExpectSuccess() {
+      _mockEngine
+        .Setup(me => me.LogErrorEvent(It.IsAny<BuildErrorEventArgs>()))
+        .Callback((BuildErrorEventArgs e) =>
+            Assert.Fail($"Error logged by build engine:\n{e.Message}"));
+      bool result = _task.Execute();
+      Assert.IsTrue(result);
+    }
+  }
+}