private void TestSagaDefinition <TSagaType>(ModuleDefinition moduleToUse = null) { moduleToUse = moduleToUse ?? module; var dataType = moduleToUse.GetTypeDefinition <TSagaType>(); var instructions = InstructionAnalyzer.GetConfigureHowToFindSagaInstructions(dataType); var results = new SagaInspectionResults { HasUnmanagedCalls = InstructionAnalyzer.CallsUnmanagedMethods(instructions), HasUnexpectedCalls = InstructionAnalyzer.CallsUnexpectedMethods(instructions), HasBranchingLogic = InstructionAnalyzer.ContainsBranchingLogic(instructions) }; try { SagaDefinitionReader.TryGetSagaDefinition(dataType, out results.SagaDefinition); } catch (Exception x) { results.Exception = x.Message; } Approver.Verify(results); }
void TestSagaDefinition <TSagaType>(ModuleDefinition moduleToUse = null) { #pragma warning disable IDE0079 // Remove unnecessary suppression #pragma warning disable IDE0054 //False positive moduleToUse = moduleToUse ?? module; #pragma warning restore IDE0054 //False positive #pragma warning restore IDE0079 // Remove unnecessary suppression var dataType = moduleToUse.GetTypeDefinition <TSagaType>(); var instructions = InstructionAnalyzer.GetConfigureHowToFindSagaInstructions(dataType); var results = new SagaInspectionResults { HasUnmanagedCalls = InstructionAnalyzer.CallsUnmanagedMethods(instructions), HasUnexpectedCalls = InstructionAnalyzer.CallsUnexpectedMethods(instructions), HasBranchingLogic = InstructionAnalyzer.ContainsBranchingLogic(instructions) }; try { SagaDefinitionReader.TryGetSagaDefinition(dataType, out results.SagaDefinition); } catch (Exception x) { results.Exception = x.Message; } Approver.Verify(results); }
public void WithStatementBodyProperty() { var sagaType = module.GetTypeDefinition <WithStatementBodyPropertySaga>(); SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out var definition); ObjectApprover.VerifyWithJson(definition); }
public IList <SagaDefinition> GetSagas(Action <string, string> logger = null) { var sagas = new List <SagaDefinition>(); var errors = new List <Exception>(); foreach (var type in module.AllClasses()) { try { if (SagaDefinitionReader.TryGetSagaDefinition(type, out var definition)) { sagas.Add(definition); } } catch (ErrorsException exception) { logger?.Invoke(exception.Message, type.FullName); errors.Add(new Exception($"Error in '{type.FullName}' (Filename='{type.GetFileName()}'). Error: {exception.Message}", exception)); } } if (errors.Count > 0 && logger == null) { throw new AggregateException(errors); } return(sagas); }
public void WithNoCorrelation() { var sagaType = module.GetTypeDefinition <WithNoCorrelationSaga>(); SagaDefinitionReader.TryGetSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); Approver.Verify(definition); }
public void WithTableSuffix() { var sagaType = module.GetTypeDefinition <TableSuffixSaga>(); SagaDefinitionReader.TryGetSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); Approver.Verify(definition); }
public void WithNoCorrelation() { var sagaType = module.GetTypeDefinition <WithNoCorrelationSaga>(); SagaDefinition definition; SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out definition); ObjectApprover.VerifyWithJson(definition); }
public void WithTableSuffix() { var sagaType = module.GetTypeDefinition <TableSuffixSaga>(); SagaDefinition definition; SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out definition); ObjectApprover.VerifyWithJson(definition); }
public void WithStatementBodyProperty() { var sagaType = module.GetTypeDefinition <WithStatementBodyPropertySaga>(); SagaDefinitionReader.TryGetSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); Approver.Verify(definition); }
public void Simple() { var sagaType = module.GetTypeDefinition <SimpleSaga>(); SagaDefinitionReader.TryGetSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); Approver.Verify(definition); }
public void WithStatementBodyProperty() { var sagaType = module.GetTypeDefinition <WithStatementBodyPropertySaga>(); SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); #if NET452 ObjectApprover.VerifyWithJson(definition); #endif }
public void WithNoCorrelation() { var sagaType = module.GetTypeDefinition <WithNoCorrelationSaga>(); SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out var definition); Assert.IsNotNull(definition); #if NET452 ObjectApprover.VerifyWithJson(definition); #endif }
public void ThrowIfAttributeExists() { var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "ScriptBuilder.Tests.dll"); var readerParameters = new ReaderParameters(ReadingMode.Deferred); var module = ModuleDefinition.ReadModule(path, readerParameters); var dataType = module.GetTypeDefinition <SqlSagaWithAttribute>(); var ex = Assert.Throws <Exception>(() => SagaDefinitionReader.TryGetSagaDefinition(dataType, out _)); Assert.IsTrue(ex.Message.Contains("attribute is invalid")); }
public void NonSqlSaga() { var sagaType = module.GetTypeDefinition <NonSqlSagaSaga>(); SagaDefinition definition; var exception = Assert.Throws <ErrorsException>(() => { SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out definition); }); Approvals.Verify(exception.Message); }
public void Abstract() { var sagaType = module.GetTypeDefinition <AbstractSaga>(); var exception = Assert.Throws <ErrorsException>(() => { SagaDefinitionReader.TryGetSagaDefinition(sagaType, out _); }); Assert.IsNotNull(exception.Message); Approver.Verify(exception.Message); }
public void NonSqlSaga() { var sagaType = module.GetTypeDefinition <NonSqlSagaSaga>(); var exception = Assert.Throws <ErrorsException>(() => { SagaDefinitionReader.TryGetSqlSagaDefinition(sagaType, out SagaDefinition _); }); Assert.IsNotNull(exception.Message); #if NET452 Approvals.Verify(exception.Message); #endif }
public IEnumerable <SagaDefinition> GetSagas(Action <ErrorsException, TypeDefinition> logError) { var sagas = new List <SagaDefinition>(); foreach (var type in module.AllClasses()) { try { if (SagaDefinitionReader.TryGetSqlSagaDefinition(type, out var definition)) { sagas.Add(definition); } } catch (ErrorsException exception) { logError(exception, type); } } return(sagas); }