Beispiel #1
0
        public void TestCommit_SimpleInsertion()
        {
            IRepository <Customer> repository = _manager.GetRepository <Customer>();

            GetCustomerByCivilStatusQuery.Criteria criteriaByStatus = GetCustomerByCivilStatusQuery.Criteria.SearchByStatus(GetCustomerByCivilStatusQuery.CivilStatus.Married);
            GetCustomerByIdQuery.Criteria          criteriaById     = GetCustomerByIdQuery.Criteria.SearchById(2);
            List <Customer> customerResults = new List <Customer>();
            IUnitOfWork     uow             = new UnitOfWork();

            customerResults.AddRange(repository.Matching(criteriaByStatus));
            customerResults.AddRange(repository.Matching(criteriaById));


            IBaseMapper mapper    = DataSynchronizationManager.GetInstance().GetMapper <Customer>();
            Customer    customer1 = new Customer(mapper)
            {
                Number = "1"
            };
            Customer customer2 = new Customer(mapper)
            {
                Number = "2"
            };
            Customer customer3 = new Customer(mapper)
            {
                Number = "3"
            };


            //Sequence of observation affects commit order
            uow.RegisterNew(customer1);
            uow.RegisterNew(customer3);
            uow.RegisterNew(customer2);

            IList <string> sequenceDescription = new List <string>();

            uow.Commit(
                (domainObject, action, results) =>
            {
                string description = ((results != null) && (results[CustomerMapper.SUCCESS_DESCRIPTION] != null)) ?
                                     (string)results[CustomerMapper.SUCCESS_DESCRIPTION] : string.Empty;


                sequenceDescription.Add(string.Format("{0}={1}={2}", description, action.ToString(), domainObject.Mapper.GetEntityTypeName()));
            },
                (domainObject, action, results) => { }
                );

            Assert.AreEqual("1=Insert=Customer", sequenceDescription[0]);
            Assert.AreEqual("3=Insert=Customer", sequenceDescription[1]);
            Assert.AreEqual("2=Insert=Customer", sequenceDescription[2]);
        }
Beispiel #2
0
        public void TestRepository()
        {
            IRepository <Customer> repository = _manager.GetRepository <Customer>();

            /*Match by civil status*/
            GetCustomerByCivilStatusQuery.Criteria criteriaByStatus = GetCustomerByCivilStatusQuery.Criteria.SearchByStatus(GetCustomerByCivilStatusQuery.CivilStatus.Married);
            IList <Customer> resultsByStatus = repository.Matching(criteriaByStatus);
            Customer         matchByStatus   = resultsByStatus.First();

            Assert.AreEqual("5", matchByStatus.Number);
            Assert.AreEqual("Test Married", matchByStatus.Name);
            /***********************/

            /*Match by Id*/
            GetCustomerByIdQuery.Criteria criteriaById = GetCustomerByIdQuery.Criteria.SearchById(2);
            IList <Customer> resultsById = repository.Matching(criteriaById);
            Customer         matchById   = resultsById.First();

            Assert.AreEqual("2", matchById.Number);
            Assert.AreEqual("Jane Doe", matchById.Name);
            /************/
        }