public void GenerateAssociationInserts_Should_Create_Proper_Inserts()
        {
            // arrange
            var record = new Dictionary<string, object> {
                {"badField1", "value2"},
                {"badField2", "value1"}};

            var extractAssociation = new ExtractAssociation(this.src.Object, this.dest.Object, this.rules.Object);

            var result = new List<Dictionary<string, object>>();

            this.dest.Setup(x => x.InsertRecord(It.IsAny<string>(), It.IsAny<Dictionary<string, object>>()))
                .Callback((string s, Dictionary<string, object> r) => result.Add(r));

            extractAssociation.ExtractedAssociation.InsertExtractedField(FirstExtractedTable, 10, "value1");
            extractAssociation.ExtractedAssociation.InsertExtractedField(FirstExtractedTable, 11, "value2");

            // act
            extractAssociation.InsertAssociationInserts(record, 4);

            // assert
            Assert.IsInstanceOfType(result, typeof(List<Dictionary<string, object>>));
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(4, result[0]["desttablename_id"]);
            Assert.AreEqual(4, result[1]["desttablename_id"]);
            Assert.AreEqual(11, result[0]["extractedtable_id"]);
            Assert.AreEqual(10, result[1]["extractedtable_id"]);
        }
        public void Test_PerformRefactor_ExtractAssociation_Inserts_Into_Association_Table()
        {
            // arrange
            const int desttablename_id = 66;
            const int extracttable_id = 55;
            var extractAssocation = new ExtractAssociation(this.src.Object, this.dest.Object, this.rules.Object);
            var record = new Dictionary<string, object> {
                {"badField1", "value1"},
                {"badField2", "value2"}};
            this.dest.Setup(x => x.GetIdLastInsert()).Returns(extracttable_id);

            // act
            var result = extractAssocation.PerformRefactor();
            extractAssocation.InsertAssociationInserts(record, desttablename_id);

            // assert
            this.dest.Verify(x => x.InsertRecord("DestTableNameToExtractedTable",
                new Dictionary<string, object> {
                    {"desttablename_id", desttablename_id},
                    {"extractedtable_id", extracttable_id}}));
        }