Ejemplo n.º 1
0
        public void KvRecCtor_NoItems_CorrectData()
        {
            //arrange
            var items = new List <IItem>();
            int recNo = 22;
            int srcNo = 4;

            //act
            var            rec  = new KeyValRecord(items, recNo, srcNo, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec; //n/a as there are no dynamic properties in this case

            //assert
            rec.Count.Should().Be(0);
            rec.RecNo.Should().Be(recNo);
            rec.SourceNo.Should().Be(srcNo);
            rec.Keys.Count.Should().Be(0);
            rec.Items.Count.Should().Be(0);
            rec[0].Should().BeNull();
            rec["any"].Should().BeNull();
            recR[0].Should().BeNull();
            recR["any"].Should().BeNull();
            recU[0].Should().BeNull();
            recU["any"].Should().BeNull();
        }
Ejemplo n.º 2
0
        public void AssignValue_TypedValueSetToStringItem_ConvertedToString()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("blah", "origData", _typeDefs),
                                      KeyValItem.CreateItem("I_int", 33, _typeDefs) };
            var            rec  = new KeyValRecord(items, 16, 2, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            rec["blah"] = true;

            //assert
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec.Keys[0].Should().Be("blah");
            rec[0].Should().Be("True");

            //act2
            recR["blah"] = new DateTime(2050, 12, 1);

            //assert2
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec.Keys[0].Should().Be("blah");
            rec[0].Should().Be("12/1/2050 12:00:00 AM");
        }
Ejemplo n.º 3
0
        public void ReplaceItem_NonExistingKey_ChangeRejected()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("blah", "origData", _typeDefs),
                                      KeyValItem.CreateItem("I_int", 33, _typeDefs) };
            var            rec  = new KeyValRecord(items, 22, 11, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            rec.ReplaceItem(KeyValItem.CreateItem("I_blah", "66", _typeDefs));
            rec.ReplaceItem(KeyValItem.CreateItem("I_newInt", "badData", _typeDefs));

            //assert
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(22);
            rec.SourceNo.Should().Be(11);
            rec.Keys[0].Should().Be("blah");
            rec[0].Should().Be("origData");
            rec.Keys[1].Should().Be("I_int");
            rec[1].Should().Be(33);
        }
Ejemplo n.º 4
0
        public void ReplaceItem_ExistingKey_ChangeAccepted()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("blah", "origData", _typeDefs),
                                      KeyValItem.CreateItem("I_int", 33, _typeDefs) };
            var            rec  = new KeyValRecord(items, 20, 10, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            rec.ReplaceItem(KeyValItem.CreateItem("blah", "66", _typeDefs));
            rec.ReplaceItem(KeyValItem.CreateItem("I_int", "badData", _typeDefs));

            //assert
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(20);
            rec.SourceNo.Should().Be(10);
            rec.Keys[0].Should().Be("blah");
            rec[0].Should().Be("66");
            rec.Keys[1].Should().Be("I_int");
            rec[1].Should().Be(0); //default(int) as a result of "badData"
        }
Ejemplo n.º 5
0
        public void AddItem_SimpleValuesButCannotAlterFields_NoChange()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("IDCD_ID", "71941", _typeDefs),
                                      KeyValItem.CreateItem("blah", "blahblah", _typeDefs),
                                      KeyValItem.CreateItem("I_num", 243, _typeDefs) };

            _config.AllowTransformToAlterFields = false; //it was set to true in test Initialize method
            var            rec  = new KeyValRecord(items, 19, 13, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            IRecord        recR = rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            var result = rec.AddItem("I_alsoNum", 120);

            //assert
            result.Should().BeNull();
            rec.Count.Should().Be(3);
            rec.RecNo.Should().Be(19);
            rec.SourceNo.Should().Be(13);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);

            //act2
            result = rec.AddItem("foo", "bar");

            //assert2
            result.Should().BeNull();
            rec.Count.Should().Be(3);
            rec.RecNo.Should().Be(19);
            rec.SourceNo.Should().Be(13);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);


            //act3
            recD.I_NUMBER = 1356; //attempt to set a value of non-existing item is simply ignored(!) - this behavior may be revised

            //assert3
            Assert.IsNull(recD.I_NUMBER);
            rec.Count.Should().Be(3);
            rec.RecNo.Should().Be(19);
            rec.SourceNo.Should().Be(13);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);
        }
Ejemplo n.º 6
0
        public void AddItem_SimpleValues_CorrectData()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("IDCD_ID", "71941", _typeDefs),
                                      KeyValItem.CreateItem("blah", "blahblah", _typeDefs),
                                      KeyValItem.CreateItem("I_num", 243, _typeDefs) };
            var            rec  = new KeyValRecord(items, 18, 12, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            IRecord        recR = rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            var result = rec.AddItem("I_alsoNum", 120);

            //assert
            result.Should().BeOfType <KeyValItem <int> >();
            result.Key.Should().Be("I_alsoNum");
            result.Value.Should().Be(120);
            rec.Count.Should().Be(4);
            rec.RecNo.Should().Be(18);
            rec.SourceNo.Should().Be(12);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);
            rec[3].Should().Be(120);
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            Assert.AreEqual(120, recD.I_alsoNum);


            //act2
            rec.AddItem("foo", "bar");

            //assert2
            rec.Count.Should().Be(5);
            rec.RecNo.Should().Be(18);
            rec.SourceNo.Should().Be(12);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);
            rec[3].Should().Be(120);
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            Assert.AreEqual(120, recD.I_alsoNum);
            rec[4].Should().Be("bar");
            recR[4].Should().Be("bar");
            recU["foo"].Should().Be("bar");
            recR[4].Should().Be("bar");
            recU["foo"].Should().Be("bar");
            Assert.AreEqual("bar", recD.foo);

            //act3
            recD.I_NUMBER = 1356;

            //assert3
            rec.Count.Should().Be(6);
            rec.RecNo.Should().Be(18);
            rec.SourceNo.Should().Be(12);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            Assert.AreEqual("blahblah", recD.blah);
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recR["I_num"].Should().Be(243);
            recU["I_num"].Should().Be("243");
            Assert.AreEqual(243, recD.I_num);
            rec[3].Should().Be(120);
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            recR[3].Should().Be(120);
            recU["I_alsoNum"].Should().Be("120");
            Assert.AreEqual(120, recD.I_alsoNum);
            rec[4].Should().Be("bar");
            recR[4].Should().Be("bar");
            recU["foo"].Should().Be("bar");
            recR[4].Should().Be("bar");
            recU["foo"].Should().Be("bar");
            Assert.AreEqual("bar", recD.foo);
            rec[5].Should().Be(1356);
            recR[5].Should().Be(1356);
            recU["I_NUMBER"].Should().Be("1356");
            recR[5].Should().Be(1356);
            recU["I_NUMBER"].Should().Be("1356");
            Assert.AreEqual(1356, recD.I_NUMBER);
        }
Ejemplo n.º 7
0
        public void RemoveItem_SimpleValues_CorrectData()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("IDCD_ID", "71941", _typeDefs),
                                      KeyValItem.CreateItem("blah", "blahblah", _typeDefs),
                                      KeyValItem.CreateItem("I_num", 243, _typeDefs) };
            var            rec  = new KeyValRecord(items, 16, 1, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            IRecord        recR = rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            rec.RemoveItem("nonExisting"); //should have no effect

            //assert
            rec.Count.Should().Be(3);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(1);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            rec[1].Should().Be("blahblah");
            rec["blah"].Should().Be("blahblah");
            rec[2].Should().Be(243);
            rec["I_num"].Should().Be(243);

            //act2
            rec.RemoveItem("blah");

            //assert2
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(1);
            rec.Keys[0].Should().Be("IDCD_ID");
            rec.GetItem("IDCD_ID").Key.Should().Be("IDCD_ID");
            recU[0].Should().Be("71941");
            recR[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recU[1].Should().Be("243");
            recR[1].Should().Be(243);
            Assert.AreEqual(243, recD.I_num);
            rec["blah"].Should().Be(null);
            rec[2].Should().Be(null);
            recU[2].Should().Be(null);
            recR[2].Should().Be(null);

            //act3
            rec.RemoveItem("IDCD_ID");

            //assert3
            rec.Count.Should().Be(1);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(1);
            rec.Keys[0].Should().Be("I_num");
            rec.GetItem("I_num").Key.Should().Be("I_num");
            rec[0].Should().Be(243);
            rec["I_num"].Should().Be(243);
            recU[0].Should().Be("243");
            recR[0].Should().Be(243);
            Assert.AreEqual(243, recD.I_num);
            rec["IDCD_ID"].Should().Be(null);
            rec[1].Should().Be(null);
            recU[1].Should().Be(null);
            recR[1].Should().Be(null);
        }
Ejemplo n.º 8
0
        public void AssignValue_TypedValue_CorrectData()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("blah", "origData", _typeDefs),
                                      KeyValItem.CreateItem("I_int", 88, _typeDefs) };
            var            rec  = new KeyValRecord(items, 16, 2, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //act
            rec["I_int"] = 66;

            //assert
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec[1].Should().Be(66);
            rec.Items[1].StringValue.Should().Be("66");
            recR[1].Should().Be(66);
            recR["I_int"].Should().Be(66);
            recU[1].Should().Be("66");
            recU["I_int"].Should().Be("66");
            Assert.AreEqual(66, recD.I_int);

            //act2
            recU["blah"] = "NewValue";

            //assert2
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec[0].Should().Be("NewValue");
            recR[0].Should().Be("NewValue");
            recR["blah"].Should().Be("NewValue");
            recU[0].Should().Be("NewValue");
            recU["blah"].Should().Be("NewValue");
            Assert.AreEqual("NewValue", recD.blah);

            //act3
            recR["blah"] = 150;

            //assert3
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec[0].Should().Be("150");
            recR[0].Should().Be("150");
            recR["blah"].Should().Be("150");
            recU[0].Should().Be("150");
            recU["blah"].Should().Be("150");
            Assert.AreEqual("150", recD.blah);

            //act4
            recD.I_int = "badNum";

            //assert4
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(2);
            rec[1].Should().Be(0); //default(int)
            recR[1].Should().Be(0);
            recR["I_int"].Should().Be(0);
            recU[1].Should().Be("0");
            recU["I_int"].Should().Be("0");
            Assert.AreEqual(0, recD.I_int);
        }
Ejemplo n.º 9
0
        public void AssignValue_StringValue_CorrectData()
        {
            //arrange
            var items = new IItem[] { KeyValItem.CreateItem("IDCD_ID", "71941", _typeDefs),
                                      KeyValItem.CreateItem("blah", "origData", _typeDefs) };
            var rec = new KeyValRecord(items, 16, 3, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);

            //act
            rec["blah"] = "NewValue";
            var            recR = (IRecord)rec;
            IUntypedRecord recU = rec;
            dynamic        recD = rec;

            //assert
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(3);
            rec[0].Should().Be("71941");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("NewValue");
            recR[1].Should().Be("NewValue");
            recU[1].Should().Be("NewValue");
            Assert.AreEqual("NewValue", recD.blah);

            //act2
            rec          = new KeyValRecord(items, 16, 3, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            recR         = (IRecord)rec;
            recU         = rec;
            recD         = rec;
            recR["blah"] = "NewValueR";

            //assert2
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(3);
            rec[0].Should().Be("71941");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("NewValueR");
            recR[1].Should().Be("NewValueR");
            recU[1].Should().Be("NewValueR");
            Assert.AreEqual("NewValueR", recD.blah);

            //act3
            rec          = new KeyValRecord(items, 16, 3, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            recR         = (IRecord)rec;
            recU         = rec;
            recD         = rec;
            recU["blah"] = "NewValueU";

            //assert3
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(3);
            rec[0].Should().Be("71941");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("NewValueU");
            recR[1].Should().Be("NewValueU");
            recU[1].Should().Be("NewValueU");
            Assert.AreEqual("NewValueU", recD.blah);

            //act4
            rec       = new KeyValRecord(items, 16, 3, 0, null, null, null, _typeDefs, _config, null, ActionOnDuplicateKey.IgnoreItem);
            recR      = (IRecord)rec;
            recU      = rec;
            recD      = rec;
            recD.blah = "NewValueD";

            //assert4
            rec.Count.Should().Be(2);
            rec.RecNo.Should().Be(16);
            rec.SourceNo.Should().Be(3);
            rec[0].Should().Be("71941");
            recR[0].Should().Be("71941");
            recU[0].Should().Be("71941");
            Assert.AreEqual("71941", recD.IDCD_ID);
            rec[1].Should().Be("NewValueD");
            recR[1].Should().Be("NewValueD");
            recU[1].Should().Be("NewValueD");
            Assert.AreEqual("NewValueD", recD.blah);
        }