public void ShouldDiscoverInitializationActionsMatchingToAssemblyDefinedInitializationHandlerAttributes() { TestApplicationInitializationContext context = new TestApplicationInitializationContext(Substitute.For<TestApplication>(Substitute.For<InitializationManager>(new TestInitializationActionDiscoverer(), new InitializationActionExecutor()))); TestApplicationInitializationActionDiscoverer discoverer = new TestApplicationInitializationActionDiscoverer(); IEnumerable<InitializationAction> result = discoverer.GetInitializationActions(context).ToArray(); Assert.Equal(3, result.Count()); Assert.Equal(typeof(SampleInitializationHandler).AssemblyQualifiedName, result.First().Id); Assert.IsType<InitializationHandler>(result.First().State); Assert.Equal(typeof(SampleInitializationHandler), ((InitializationHandler)result.First().State).Type); Assert.Empty(((InitializationHandler)result.First().State).Arguments); Assert.Equal(context, result.First().Context); Assert.Equal(typeof(SampleInitializationHandler).AssemblyQualifiedName, result.ElementAt(1).Id); Assert.IsType<InitializationHandler>(result.ElementAt(1).State); Assert.Equal(typeof(SampleInitializationHandler), ((InitializationHandler)result.ElementAt(1).State).Type); Assert.Equal(new object[] { "parameter" }, ((InitializationHandler)result.ElementAt(1).State).Arguments); Assert.Equal(context, result.ElementAt(1).Context); Assert.Equal(typeof(SampleInitializationHandler).AssemblyQualifiedName, result.ElementAt(2).Id); Assert.IsType<InitializationHandler>(result.ElementAt(2).State); Assert.Equal(typeof(SampleInitializationHandler), ((InitializationHandler)result.ElementAt(2).State).Type); Assert.Empty(((InitializationHandler)result.ElementAt(2).State).Arguments); Assert.Equal(context, result.ElementAt(2).Context); }
public void ShouldThrowNotSupportedExceptionForOtherThanTestApplicationInitializationContextTypesOfContexts() { TestApplicationInitializationActionDiscoverer discoverer = new TestApplicationInitializationActionDiscoverer(); Assert.ThrowsDelegate action = () => discoverer.GetInitializationActions("context"); Assert.Throws<NotSupportedException>(action); }