Beispiel #1
0
        public void ApiService_ProcessUpdatedObjects_CreatePersonAndUpdateTransaction_TransactionHasCorrectPayerId()
        {
            IUnitOfWork unitOfWork     = Setup();
            Guid        transaction1Id = new Guid("88888888-4444-4444-4444-222222222222");
            Guid        person1Id      = new Guid("88888888-1111-4444-4444-222222222222");

            AddPersonToStorage(unitOfWork, person1Id, "person1", Guid.Empty);
            AddTransactionIntoStorage(unitOfWork, transaction1Id, 10, payerId: person1Id);

            ApiUpdateJsonModel model = new ApiUpdateJsonModel();

            model.CreatedObjects.People.Add(new JsonPerson()
            {
                ClientId = 1,
                Name     = "person2"
            });
            model.UpdatedObjects.Transactions.Add(new JsonTransaction()
            {
                Id            = transaction1Id,
                PayerClientId = 1
            });

            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            apiService.ProcessUpdatedObjects();

            Guid createdPersonId = returnModel.AddedPeople.First().Id;

            Assert.AreEqual(createdPersonId, unitOfWork.StorageContext.Transactions.First().PayerId);
        }
Beispiel #2
0
        public void ApiService_ProcessUpdatedObjects_CreateGroupAndUpdatePerson_PersonHasCorrectGroupId()
        {
            IUnitOfWork unitOfWork = Setup();
            Guid        person1Id  = new Guid("88888888-4444-4444-4444-222222222222");
            Guid        group1Id   = new Guid("88888888-1111-4444-4444-222222222222");

            AddGroupToStorage(unitOfWork, group1Id, "group1");
            AddPersonToStorage(unitOfWork, person1Id, "test1", group1Id);

            ApiUpdateJsonModel model = new ApiUpdateJsonModel();

            model.CreatedObjects.Groups.Add(new JsonGroup()
            {
                ClientId = 1,
                Name     = "group2"
            });
            model.UpdatedObjects.People.Add(new JsonPerson()
            {
                Id            = person1Id,
                Name          = "test2",
                GroupClientId = 1
            });

            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            apiService.ProcessUpdatedObjects();

            Guid createdGroupId = returnModel.AddedGroups.First().Id;

            Assert.AreEqual(createdGroupId, unitOfWork.StorageContext.People.First().GroupId);
        }
Beispiel #3
0
        public void ApiService_ProcessUpdatedObjects_CreateGroupAndUpdateTransaction_TransactionHasCorrectGroupId()
        {
            IUnitOfWork unitOfWork     = Setup();
            Guid        transaction1Id = new Guid("88888888-4444-4444-4444-222222222222");
            Guid        group1Id       = new Guid("88888888-1111-4444-4444-222222222222");

            AddGroupToStorage(unitOfWork, group1Id, "group1");
            AddTransactionIntoStorage(unitOfWork, transaction1Id, 10, group1Id);

            ApiUpdateJsonModel model = new ApiUpdateJsonModel();

            model.CreatedObjects.Groups.Add(new JsonGroup()
            {
                ClientId = 1,
                Name     = "group2"
            });
            model.UpdatedObjects.Transactions.Add(new JsonTransaction()
            {
                Id            = transaction1Id,
                GroupClientId = 1
            });

            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            apiService.ProcessUpdatedObjects();

            Guid createdGroupId = returnModel.AddedGroups.First().Id;

            Assert.AreEqual(createdGroupId, unitOfWork.StorageContext.Transactions.First().GroupId);
        }
        // GET api/<controller>
        //public IEnumerable<string> Get()
        //{
        //  return new string[] { "value1", "value2" };
        //}

        // GET api/<controller>/5
        //public string Get(int id)
        //{
        //  return "value";
        //}

        // POST api/<controller>
        public ApiUpdateJsonReturnModel Sync([FromBody] ApiUpdateJsonModel model)
        {
            ApiService apiService = new ApiService(_unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            apiService.ProcessUpdatedObjects();

            return(returnModel);
        }
Beispiel #5
0
        public ApiService(IUnitOfWork unitOfWork, ApiUpdateJsonModel model)
        {
            _unitOfWork         = unitOfWork;
            _groupService       = new GroupService(_unitOfWork);
            _personService      = new PersonService(_unitOfWork);
            _transactionService = new TransactionService(_unitOfWork);

            _model             = model;
            _addedGroups       = new List <AddedEntity <Group> >();
            _addedPeople       = new List <AddedEntity <Person> >();
            _addedTransactions = new List <AddedEntity <Transaction> >();
            _returnModel       = new ApiUpdateJsonReturnModel();
        }
Beispiel #6
0
        public void ApiService_ProcessCreatedObjects_Add2Peple_2ndPersonAddedToReturnModel()
        {
            IUnitOfWork        unitOfWork = Setup();
            ApiUpdateJsonModel model      = SetupPeopleForAdd(new List <string>()
            {
                "test1", "test2"
            });
            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            Assert.AreEqual(unitOfWork.StorageContext.People.Skip(1).First().Id, returnModel.AddedPeople.Skip(1).First().Id);
        }
Beispiel #7
0
        public void ApiService_ProcessCreatedObjects_AddGroup_ReturnedObjectContaineNewGroupId()
        {
            IUnitOfWork        unitOfWork = Setup();
            ApiUpdateJsonModel model      = SetupGroupsForAdd(new List <string>()
            {
                "test1"
            });
            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            Assert.AreEqual(unitOfWork.StorageContext.Groups.First().Id, returnModel.AddedGroups.First().Id);
        }
Beispiel #8
0
        public void ApiService_ProcessCreatedObjects_Add2Groups_ReturnedObjectGroupCountIs2()
        {
            IUnitOfWork        unitOfWork = Setup();
            ApiUpdateJsonModel model      = SetupGroupsForAdd(new List <string>()
            {
                "test1", "test2"
            });
            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            Assert.AreEqual(2, returnModel.AddedGroups.Count);
        }
Beispiel #9
0
        public void ApiService_ProcessCreatedObjects_AddGroup_CreatedIdInReturnedObject()
        {
            IUnitOfWork        unitOfWork = Setup();
            ApiUpdateJsonModel model      = SetupGroupsForAdd(new List <string>()
            {
                "test1"
            });
            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            Assert.IsNotNull(returnModel.AddedGroups.First().Id);
        }
Beispiel #10
0
        public void ApiService_ProcessUpdatedObjects_UpdateTransactionMixOfClientAndDbIds_TransactionHasIdOfDbPayee()
        {
            IUnitOfWork unitOfWork     = Setup();
            Guid        transaction1Id = new Guid("88888888-4444-4444-4444-222222222222");
            Guid        person1Id      = new Guid("88888888-1111-4444-4444-222222222222");

            AddPersonToStorage(unitOfWork, person1Id, "person1", Guid.Empty);
            AddTransactionIntoStorage(unitOfWork, transaction1Id, 10, payeeIds: new HashSet <Person>()
            {
                unitOfWork.StorageContext.People.First()
            });

            ApiUpdateJsonModel model = new ApiUpdateJsonModel();

            model.CreatedObjects.People.Add(new JsonPerson()
            {
                ClientId = 1,
                Name     = "person2"
            });
            model.UpdatedObjects.Transactions.Add(new JsonTransaction()
            {
                Id     = transaction1Id,
                Payees = new List <Guid>()
                {
                    person1Id
                },
                PayeesClientIds = new List <int>()
                {
                    1
                }
            });

            ApiService apiService = new ApiService(unitOfWork, model);

            ApiUpdateJsonReturnModel returnModel = apiService.ProcessCreatedObjects();

            apiService.ProcessUpdatedObjects();

            Guid createdPersonId          = returnModel.AddedPeople.First().Id;
            IEnumerable <Guid> payeeGuids = unitOfWork.StorageContext.Transactions.First().Payees.Select(x => x.Id).ToList();

            Assert.IsTrue(payeeGuids.Contains(createdPersonId));
        }