public void TestUsingBOLookupListString()
        {
            //---------------Set up test pack-------------------
            IComboBox cmbox = GetControlFactory().CreateComboBox();
            const string propName = "SampleLookup3ID";
            LookupComboBoxMapper mapper = new LookupComboBoxMapper(cmbox, propName, false, GetControlFactory());
            Sample sample = new Sample();
            object sampleToSelect = Sample.BOLookupCollection[LOOKUP_ITEM_2];
            sample.SetPropertyValue(propName, sampleToSelect);

            //---------------Execute Test ----------------------
            mapper.LookupList = Sample.BOLookupCollection;
            mapper.BusinessObject = sample;

            //---------------Test Result -----------------------
            Assert.AreEqual(4, cmbox.Items.Count);
            Assert.AreEqual(LOOKUP_ITEM_2, cmbox.SelectedItem);
            Assert.AreSame(sampleToSelect, cmbox.SelectedValue);
        }
        public void Test_SetBusinessObj_WhenSpecificGuidPropUsed_ShouldSetTheSelectedItemToCorrectRelatedCar()
        {
            //---------------Set up test pack-------------------
            ClassDef.ClassDefs.Clear();
            Sample.CreateClassDefWithAGuidProp();
            IComboBox cmbox = GetControlFactory().CreateComboBox();
            const string sampleBOProp = "GuidProp";
            const string owningBoPropertyName = "CarId";
            CollectionComboBoxMapper mapper = new CollectionComboBoxMapper(cmbox, sampleBOProp, false,
                                                                           GetControlFactory())
                                                  {OwningBoPropertyName = owningBoPropertyName};

            Car car1;
            Car car2;
            mapper.BusinessObjectCollection = GetCollectionWithTwoCars(out car1, out car2);
            Sample sample = new Sample();
            sample.SetPropertyValue(sampleBOProp, car1.CarID);
            //---------------Assert Precondition----------------
            Assert.AreEqual(2, mapper.BusinessObjectCollection.Count);
            Assert.AreEqual(3, cmbox.Items.Count);
            Assert.IsNull(cmbox.SelectedItem);
            Assert.AreEqual(owningBoPropertyName, mapper.OwningBoPropertyName);
            Assert.IsNotNull(sample.GetPropertyValue(sampleBOProp));
            //---------------Execute Test ----------------------
            mapper.BusinessObject = sample;
            //---------------Test Result -----------------------
            Assert.IsNotNull(cmbox.SelectedItem);
            Assert.AreEqual(car1, cmbox.SelectedItem, "Combo Box selected item is not set.");
        }
        public void TestUsingPropWithBOLookupList()
        {
            //---------------Set up test pack-------------------
            DataStoreInMemory store = new DataStoreInMemory();
            BORegistry.DataAccessor = new DataAccessorInMemory(store);
            IComboBox cmbox = GetControlFactory().CreateComboBox();
            const string propName = "SampleLookup2ID";
            LookupComboBoxMapper mapper = new LookupComboBoxMapper(cmbox, propName, false, GetControlFactory());
            Dictionary<string, string> collection = getLookupList();
            Sample sample = new Sample();
            sample.Save();
            string boId = collection[LOOKUP_ITEM_2];
            Assert.AreEqual(4, store.Count);
            IBusinessObject businessObject = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectByValue<Sample>(boId);
            Sample sampleToSelect = (Sample)businessObject;
            sample.SetPropertyValue(propName, sampleToSelect);

            //--------------Assert Preconditions -------------
            Assert.AreEqual(3, collection.Count);
            Assert.AreEqual(4, store.Count);
            //---------------Execute Test ----------------------
            mapper.LookupList = collection;
            mapper.BusinessObject = sample;

            //---------------Test Result -----------------------
            Assert.AreEqual(4, cmbox.Items.Count);
            Assert.AreEqual(LOOKUP_ITEM_2, cmbox.SelectedItem);
            Assert.AreEqual(sampleToSelect.ToString(), cmbox.SelectedValue);
        }