Exemplo n.º 1
0
        public void AllReplacementsTest()
        {
            Mock <HelperFilesCache> mockHelperFilesCache = new Mock <HelperFilesCache>();

            mockHelperFilesCache.Setup(c => c.GetReplacementsMap(It.IsAny <string>())).Returns(
                new Dictionary <string, string>
            {
                { nameof(IGoogleTestAdapterSettings.ConfigurationName), "MyDebug" },
                { nameof(IGoogleTestAdapterSettings.PlatformName), "Win33" }
            });
            Mock <IGoogleTestAdapterSettings> mockOptions = new Mock <IGoogleTestAdapterSettings>();
            Mock <ILogger> mockLogger          = new Mock <ILogger>();
            var            placeholderReplacer = new PlaceholderReplacer(
                () => TestResources.SampleTestsSolutionDir,
                () => mockOptions.Object,
                mockHelperFilesCache.Object,
                mockLogger.Object);

            foreach (string methodName in MethodNames)
            {
                foreach (PlaceholderAndValue placeholder in PlaceholdersAndExpectedValues)
                {
                    if (!UnsupportedCombinations.Any(combination =>
                                                     combination.MethodName == methodName && combination.Placeholder == placeholder.Placeholder))
                    {
                        var result = InvokeMethodWithStandardParameters(placeholderReplacer, methodName, placeholder.Placeholder);
                        result.Should().Be(placeholder.Value.ToString(), $"{methodName} should replace {placeholder.Placeholder} with {(object) placeholder.Value.ToString()}");
                        mockLogger.Verify(l => l.LogWarning(It.IsAny <string>()), Times.Never);
                    }
                }
            }
        }
Exemplo n.º 2
0
        private string InvokeMethodWithStandardParameters(PlaceholderReplacer placeholderReplacer, string methodName,
                                                          string input)
        {
            var method = typeof(PlaceholderReplacer).GetMethod(methodName);
            // ReSharper disable once PossibleNullReferenceException
            var parameters = method.GetParameters();

            var parameterValues = new List <object> {
                input
            };

            for (int i = 1; i < parameters.Length; i++)
            {
                parameterValues.Add(GetValue(parameters[i]));
            }

            return((string)method.Invoke(placeholderReplacer, parameterValues.ToArray()));
        }
Exemplo n.º 3
0
        public void AllReplacementMethods_UnknownPlaceholderResultsInWarning()
        {
            Mock <HelperFilesCache> mockHelperFilesCache = new Mock <HelperFilesCache>();

            mockHelperFilesCache.Setup(c => c.GetReplacementsMap(It.IsAny <string>()))
            .Returns(new Dictionary <string, string>());
            Mock <IGoogleTestAdapterSettings> mockOptions = new Mock <IGoogleTestAdapterSettings>();
            Mock <ILogger> mockLogger = new Mock <ILogger>();
            var            replacer   = new PlaceholderReplacer(() => "solutiondir", () => mockOptions.Object,
                                                                mockHelperFilesCache.Object, mockLogger.Object);

            string placeholder = "$(UnknownPlaceholder)";

            foreach (string methodName in MethodNames)
            {
                mockLogger.Reset();
                string result = InvokeMethodWithStandardParameters(replacer, methodName, placeholder);
                result.Should().Be(placeholder);
                mockLogger.Verify(l => l.LogWarning(It.Is <string>(msg => msg.Contains(placeholder))), Times.Once);
            }
        }