1*cc02d7e2SAndroid Build Coastguard Worker #region Copyright notice and license 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard Worker // Copyright 2018 gRPC authors. 4*cc02d7e2SAndroid Build Coastguard Worker // 5*cc02d7e2SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 6*cc02d7e2SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 7*cc02d7e2SAndroid Build Coastguard Worker // You may obtain a copy of the License at 8*cc02d7e2SAndroid Build Coastguard Worker // 9*cc02d7e2SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0 10*cc02d7e2SAndroid Build Coastguard Worker // 11*cc02d7e2SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 12*cc02d7e2SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 13*cc02d7e2SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*cc02d7e2SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 15*cc02d7e2SAndroid Build Coastguard Worker // limitations under the License. 16*cc02d7e2SAndroid Build Coastguard Worker 17*cc02d7e2SAndroid Build Coastguard Worker #endregion 18*cc02d7e2SAndroid Build Coastguard Worker 19*cc02d7e2SAndroid Build Coastguard Worker using Microsoft.Build.Framework; 20*cc02d7e2SAndroid Build Coastguard Worker using Microsoft.Build.Utilities; 21*cc02d7e2SAndroid Build Coastguard Worker using Moq; 22*cc02d7e2SAndroid Build Coastguard Worker using NUnit.Framework; 23*cc02d7e2SAndroid Build Coastguard Worker 24*cc02d7e2SAndroid Build Coastguard Worker namespace Grpc.Tools.Tests 25*cc02d7e2SAndroid Build Coastguard Worker { 26*cc02d7e2SAndroid Build Coastguard Worker public class GeneratorTest 27*cc02d7e2SAndroid Build Coastguard Worker { 28*cc02d7e2SAndroid Build Coastguard Worker protected Mock<IBuildEngine> _mockEngine; 29*cc02d7e2SAndroid Build Coastguard Worker protected TaskLoggingHelper _log; 30*cc02d7e2SAndroid Build Coastguard Worker 31*cc02d7e2SAndroid Build Coastguard Worker [SetUp] SetUp()32*cc02d7e2SAndroid Build Coastguard Worker public void SetUp() 33*cc02d7e2SAndroid Build Coastguard Worker { 34*cc02d7e2SAndroid Build Coastguard Worker _mockEngine = new Mock<IBuildEngine>(); 35*cc02d7e2SAndroid Build Coastguard Worker _log = new TaskLoggingHelper(_mockEngine.Object, "phony"); 36*cc02d7e2SAndroid Build Coastguard Worker } 37*cc02d7e2SAndroid Build Coastguard Worker 38*cc02d7e2SAndroid Build Coastguard Worker [TestCase("csharp")] 39*cc02d7e2SAndroid Build Coastguard Worker [TestCase("CSharp")] 40*cc02d7e2SAndroid Build Coastguard Worker [TestCase("cpp")] ValidLanguages(string lang)41*cc02d7e2SAndroid Build Coastguard Worker public void ValidLanguages(string lang) 42*cc02d7e2SAndroid Build Coastguard Worker { 43*cc02d7e2SAndroid Build Coastguard Worker Assert.IsNotNull(GeneratorServices.GetForLanguage(lang, _log)); 44*cc02d7e2SAndroid Build Coastguard Worker _mockEngine.Verify(me => me.LogErrorEvent(It.IsAny<BuildErrorEventArgs>()), Times.Never); 45*cc02d7e2SAndroid Build Coastguard Worker } 46*cc02d7e2SAndroid Build Coastguard Worker 47*cc02d7e2SAndroid Build Coastguard Worker [TestCase("")] 48*cc02d7e2SAndroid Build Coastguard Worker [TestCase("COBOL")] InvalidLanguages(string lang)49*cc02d7e2SAndroid Build Coastguard Worker public void InvalidLanguages(string lang) 50*cc02d7e2SAndroid Build Coastguard Worker { 51*cc02d7e2SAndroid Build Coastguard Worker Assert.IsNull(GeneratorServices.GetForLanguage(lang, _log)); 52*cc02d7e2SAndroid Build Coastguard Worker _mockEngine.Verify(me => me.LogErrorEvent(It.IsAny<BuildErrorEventArgs>()), Times.Once); 53*cc02d7e2SAndroid Build Coastguard Worker } 54*cc02d7e2SAndroid Build Coastguard Worker }; 55*cc02d7e2SAndroid Build Coastguard Worker } 56