public void ThrowsIfLoaderReturnsNull() { var underTest = new EfConfigurationLoader(ClassName, Mock.Of <ITypeLoader>()); var cx = Assert.Throws <ConfigurationErrorsException>(() => underTest.InstantiateEfConfigurationClass()); Assert.Equal($"Could not find type '{ClassName}', configured in '{ConfigClassSettingKey}'", cx.Message); }
public void ThrowsIfTypeIsNotAssignableToDbMigrationsConfiguration() { var mockLoader = new Mock <ITypeLoader>(); var type = typeof(NotAssignableToDbMigrationsConfiguration); Assert.False(typeof(DbMigrationsConfiguration).IsAssignableFrom(type)); mockLoader.Setup(m => m.Load(ClassName)).Returns(type); var underTest = new EfConfigurationLoader(ClassName, mockLoader.Object); var cx = Assert.Throws <ConfigurationErrorsException>(() => underTest.InstantiateEfConfigurationClass()); Assert.Equal($"Type '{type.FullName}', configured in '{ConfigClassSettingKey}', does not extend DbMigrationsConfiguration", cx.Message); }
public void ThrowsIfLoaderThrows() { var x = new Exception(ExceptionMessage); var mockLoader = new Mock <ITypeLoader>(); mockLoader.Setup(m => m.Load(ClassName)).Throws(x); var underTest = new EfConfigurationLoader(ClassName, mockLoader.Object); var cx = Assert.Throws <ConfigurationErrorsException>(() => underTest.InstantiateEfConfigurationClass()); Assert.Equal($"Error loading type '{ClassName}', configured in '{ConfigClassSettingKey}'", cx.Message); Assert.Equal(x, cx.InnerException); }
public void HappyPath() { var mockLoader = new Mock <ITypeLoader>(); var type = typeof(CanInstantiate); Assert.True(typeof(DbMigrationsConfiguration).IsAssignableFrom(type)); mockLoader.Setup(m => m.Load(ClassName)).Returns(type); var underTest = new EfConfigurationLoader(ClassName, mockLoader.Object); var instance = underTest.InstantiateEfConfigurationClass(); Assert.IsAssignableFrom <CanInstantiate>(instance); }
public void ThrowsIfClassCannotBeInstantiated() { var mockLoader = new Mock <ITypeLoader>(); var type = typeof(CannotInstantiate); Assert.True(typeof(DbMigrationsConfiguration).IsAssignableFrom(type)); mockLoader.Setup(m => m.Load(ClassName)).Returns(type); var underTest = new EfConfigurationLoader(ClassName, mockLoader.Object); var cx = Assert.Throws <ConfigurationErrorsException>(() => underTest.InstantiateEfConfigurationClass()); Assert.Equal($"Could not instantiate type '{type.FullName}', configured in '{ConfigClassSettingKey}'", cx.Message); Assert.NotNull(cx.InnerException); Assert.Equal("Exception has been thrown by the target of an invocation.", cx.InnerException.Message); Assert.NotNull(cx.InnerException.InnerException); Assert.Equal(ExceptionMessage, cx.InnerException.InnerException.Message); }