public void ReturnsOptionsView() { var moduleInspector = new Mock<IModuleInspector>(); ITaskManager sut = new TaskManager(moduleInspector.Object); var data = new List<Type>() { typeof(TestTaskWithMetadata) }; moduleInspector.Setup(i => i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition))).Returns(data); var result = sut.GetTaskOptionsView(data[0].FullName); Assert.IsNotNullOrEmpty(result); Assert.AreEqual(TestDataResources.TestView, result); }
public void CallsIModuleInspector() { var moduleInspector = new Mock<IModuleInspector>(); ITaskManager sut = new TaskManager(moduleInspector.Object); var data = new List<Type>() { typeof(TestDeployTask1), typeof(TestDeployTask2), typeof(TestDeployTask3) }; moduleInspector.Setup(i=>i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition))).Returns(data); var result = sut.GetAvailableTaskList(); moduleInspector.Verify(i=>i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition)), Times.Once()); Assert.AreEqual(data.Count, result.Count); foreach(var metadata in result) { Assert.Contains(Type.GetType(metadata.TaskTypeName), data); } }
public void ExcludesInterfacesClasses() { var moduleInspector = new Mock<IModuleInspector>(); ITaskManager sut = new TaskManager(moduleInspector.Object); var data = new List<Type>() { typeof(TestDeployTask1), typeof(ITestInterface) }; moduleInspector.Setup(i => i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition))).Returns(data); var result = sut.GetAvailableTaskList(); moduleInspector.Verify(i => i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition)), Times.Once()); Assert.AreEqual(1, result.Count); Assert.AreEqual(typeof(TestDeployTask1).FullName, result[0].TaskTypeName); }
public void UsesMetadataAttributeIfAvaialble() { var moduleInspector = new Mock<IModuleInspector>(); ITaskManager sut = new TaskManager(moduleInspector.Object); var data = new List<Type>() { typeof(TestTaskWithMetadata) }; moduleInspector.Setup(i => i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition))).Returns(data); var result = sut.GetAvailableTaskList(); moduleInspector.Verify(i => i.FindTypesImplementingInterfaces(typeof(IDeployTaskDefinition)), Times.Once()); Assert.AreEqual(data.Count, result.Count); foreach (var metadata in result) { var type = data.FirstOrDefault(i=>i.FullName == metadata.TaskTypeName); Assert.IsNotNull(type); string displayName = ((TaskDefinitionMetadataAttribute)type.GetCustomAttributes(typeof(TaskDefinitionMetadataAttribute), true).First()).TaskName; Assert.AreEqual(displayName, metadata.TaskDisplayName); } }