public void ShouldReturnErrorWhenForeignKeyReferencesNonExistingPrimaryKeyValue() { var addmlFlatFileDefinition = new AddmlFlatFileDefinitionBuilder().Build(); var recordDef = new AddmlRecordDefinitionBuilder() .WithAddmlFlatFileDefinition(addmlFlatFileDefinition) .Build(); AddmlFieldDefinition primaryKeyFieldDef = recordDef.AddAddmlFieldDefinition("id", null, null, new IntegerDataType(), true, false, null, null, null, null, null, true); var primaryKeyField = new Field(primaryKeyFieldDef, "1001"); AddmlFieldDefinition foreignKeyFieldDef = new AddmlFieldDefinitionBuilder() .WithForeignKey(primaryKeyFieldDef) .Build(); var foreignKeyField = new Field(foreignKeyFieldDef, "25"); var controlForeignKey = new ControlForeignKey(); controlForeignKey.Run(primaryKeyField); controlForeignKey.Run(foreignKeyField); controlForeignKey.EndOfFile(); TestRun testRun = controlForeignKey.GetTestRun(); testRun.IsSuccess().Should().BeFalse(); testRun.Results.Count.Should().Be(1); }
public void ShouldReturnNoErrorsWhenAllForeignKeysExists() { var addmlFlatFileDefinition = new AddmlFlatFileDefinitionBuilder().Build(); var recordDef = new AddmlRecordDefinitionBuilder() .WithAddmlFlatFileDefinition(addmlFlatFileDefinition) .Build(); AddmlFieldDefinition primaryKeyFieldDef = recordDef.AddAddmlFieldDefinition("id", null, null, new IntegerDataType(), true, false, null, null, null, null, null, true); var primaryKeyField = new Field(primaryKeyFieldDef, "1001"); AddmlFieldDefinition foreignKeyFieldDef = recordDef.AddAddmlFieldDefinition("foreignKeyId", null, null, new IntegerDataType(), true, false, null, null, null, null, null, false); var foreignKeyField = new Field(foreignKeyFieldDef, "1001"); var controlForeignKey = new ControlForeignKey(); controlForeignKey.Run(primaryKeyField); controlForeignKey.Run(foreignKeyField); controlForeignKey.EndOfFile(); TestRun testRun = controlForeignKey.GetTestRun(); testRun.IsSuccess().Should().BeTrue(); }