public void DeleteVersionShouldExecuteDeleteDataExpression() { var processor = new Mock <IMigrationProcessor>(); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor).Returns(processor.Object); var conventions = new MigrationConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new VersionLoader(runner.Object, asm, conventions); processor.Setup(p => p.Process(It.Is <DeleteDataExpression>(expression => expression.SchemaName == loader.VersionTableMetaData.SchemaName && expression.TableName == loader.VersionTableMetaData.TableName && expression.Rows.All( definition => definition.All( pair => pair.Key == loader.VersionTableMetaData.ColumnName && pair.Value.Equals(1L)))))) .Verifiable(); loader.DeleteVersion(1); processor.VerifyAll(); }
public void DeleteVersionShouldExecuteDeleteDataExpression() { var processor = new Mock <IMigrationProcessor>(); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor).Returns(processor.Object); var conventions = new MigrationConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new VersionLoader(runner.Object, asm, conventions); Func <IDataDefinition, bool> predicate = definition => { if (definition is ExplicitDataDefinition) { IDataValue kvp = ((ExplicitDataDefinition)definition).Data.First(); return(kvp.ColumnName == loader.VersionTableMetaData.ColumnName && kvp.Value.Equals(1L)); } else { return(false); } }; processor.Setup(p => p.Process(It.Is <DeleteDataExpression>(expression => expression.SchemaName == loader.VersionTableMetaData.SchemaName && expression.TableName == loader.VersionTableMetaData.TableName && expression.Rows.All(predicate)))).Verifiable(); loader.DeleteVersion(1); processor.VerifyAll(); }