public void GIVEN_a_warehouse_repo_WHEN_upsert_method_is_invoked_with_an_item_that_is_not_in_warehouse_THEN_new_item_is_added_to_a_warehouse()
        {
            var warehouseName = _fixture.Create <string>();
            var warehouse     = new Warehouse()
            {
                Name = warehouseName
            };

            var warehouseItemName = _fixture.Create <string>();
            var quantity          = _fixture.Create <int>();
            var warehouseItemDto  = new WarehouseItemDto()
            {
                Id   = _fixture.Create <string>(),
                Name = warehouseItemName,
                WarehouseItemInfo = new List <WarehouseItemInfo>()
                {
                    new WarehouseItemInfo()
                    {
                        Quantity      = quantity,
                        WareHouseName = warehouseName
                    }
                }
            };

            var addResult = _systemUnderTests.Add(warehouse);

            _systemUnderTests.Upsert(warehouseName, warehouseItemDto);
            var warehouses       = _systemUnderTests.GetAll();
            var actualWarehouses = warehouses.ToArray();

            Assert.IsTrue(addResult);
            Assert.AreEqual(1, actualWarehouses.Length);
            Assert.AreEqual(quantity, actualWarehouses[0].Items.First(x => x.Key.Name == warehouseItemName).Value);
        }
Example #2
0
        bool IWarehouseProvider.UpdateWarehouseItem(WarehouseItemDto dto)
        {
            var restRequest = _requestFactory.GetRequest($"warehouse/{dto.Id}", Method.PUT, dto);
            var response    = _client.Execute(restRequest);

            return(response.StatusCode == HttpStatusCode.OK);
        }
Example #3
0
        public bool AddWarehouseItem([FromBody] WareHouseDepositRequest depositRequest)
        {
            var item = depositRequest.ItemInstance as IItemInstanceDto;

            item !.Id = Guid.NewGuid();
            _itemInstanceDao.InsertOrUpdate(ref item);
            var warehouse = new WarehouseDto
            {
                CharacterId = depositRequest.WarehouseType == WarehouseType.FamilyWareHouse ? null
                    : (long?)depositRequest.OwnerId,
                Id       = Guid.NewGuid(),
                FamilyId = depositRequest.WarehouseType == WarehouseType.FamilyWareHouse
                    ? (long?)depositRequest.OwnerId : null,
                Type = depositRequest.WarehouseType,
            };

            _warehouseDao.InsertOrUpdate(ref warehouse);
            var warehouseItem = new WarehouseItemDto
            {
                Slot           = depositRequest.Slot,
                Id             = Guid.NewGuid(),
                ItemInstanceId = item.Id,
                WarehouseId    = warehouse.Id
            };

            _warehouseItemDao.InsertOrUpdate(ref warehouseItem);
            return(true);
        }
 public void AddWarehouseItem(WarehouseItemDto warehouseItem)
 {
     using (var storage = new Storage())
     {
         storage.Store(warehouseItem);
     }
 }
 public static WarehouseItem ToWarehouseItem(this WarehouseItemDto dto)
 {
     return(new WarehouseItem()
     {
         Id = dto.Id,
         Name = dto.Name
     });
 }
 public void AddWarehouseItem(WarehouseItemDto warehouseItem) => _db
 .GetCollection <MongoWarehouseItem>("WarehouseItems").InsertOne(new MongoWarehouseItem
 {
     Id       = new ObjectId(),
     ActualId = warehouseItem.Id,
     Kind     = warehouseItem.Kind,
     Price    = warehouseItem.Price,
     Quantity = warehouseItem.Quantity
 });
        public void GIVEN_a_warehouse_repo_WHEN_upsert_method_is_invoked_with_an_item_that_is_already_in_warehouse_THEN_current_item_quantity_has_to_be_updated()
        {
            var warehouseName = _fixture.Create <string>();
            var warehouse     = new Warehouse()
            {
                Name = warehouseName
            };

            var warehouseItemName = _fixture.Create <string>();
            var quantity1         = _fixture.Create <int>();
            var warehouseItemDto1 = new WarehouseItemDto()
            {
                Id   = _fixture.Create <string>(),
                Name = warehouseItemName,
                WarehouseItemInfo = new List <WarehouseItemInfo>()
                {
                    new WarehouseItemInfo()
                    {
                        Quantity      = quantity1,
                        WareHouseName = warehouseName
                    }
                }
            };

            var quantity2         = _fixture.Create <int>();
            var warehouseItemDto2 = new WarehouseItemDto()
            {
                Id   = _fixture.Create <string>(),
                Name = warehouseItemName,
                WarehouseItemInfo = new List <WarehouseItemInfo>()
                {
                    new WarehouseItemInfo()
                    {
                        Quantity      = quantity2,
                        WareHouseName = warehouseName
                    }
                }
            };

            var addResult = _systemUnderTests.Add(warehouse);

            _systemUnderTests.Upsert(warehouseName, warehouseItemDto1);
            _systemUnderTests.Upsert(warehouseName, warehouseItemDto2);
            var warehouses       = _systemUnderTests.GetAll();
            var actualWarehouses = warehouses.ToArray();

            Assert.IsTrue(addResult);
            Assert.AreEqual(1, actualWarehouses.Length);
            Assert.AreEqual(quantity1 + quantity2, actualWarehouses[0].Items
                            .Where(x => x.Key.Name == warehouseItemName)
                            .Sum(x => x.Value)
                            );
        }
Example #8
0
        private void SaveWarehouseItem(WarehouseItemDto dto)
        {
            var oldDto = _warehouseItemsStorage.SingleOrDefault(x => x.Id == dto.Id);

            if (oldDto == null)
            {
                _warehouseItemsStorage.Add(dto);
                return;
            }

            oldDto.Kind     = dto.Kind;
            oldDto.Price    = dto.Price;
            oldDto.Quantity = dto.Quantity;
        }
Example #9
0
        public void SetUp()
        {
            _nameFixture = _fixture.Create <string>();
            _idFixture   = _fixture.Create <string>();

            _systemUnderTests = new WarehouseItemDto()
            {
                Id   = _idFixture,
                Name = _nameFixture,
                WarehouseItemInfo = new []
                {
                    new WarehouseItemInfo()
                    {
                        Quantity      = _fixture.Create <int>(),
                        WareHouseName = _fixture.Create <string>()
                    },
                    new WarehouseItemInfo()
                    {
                        Quantity      = _fixture.Create <int>(),
                        WareHouseName = _fixture.Create <string>()
                    },
                }
            };
        }
Example #10
0
 internal static IWarehouseItem MapToWarehouseItem(WarehouseItemDto warehouseItemDto)
 {
     return(Mapper.Map <WarehouseItem>(warehouseItemDto));
 }
 internal static WarehouseItem MapToWarehouseItem(WarehouseItemDto warehouseItemDto) =>
 Mapper.Map <WarehouseItem>(warehouseItemDto);
 public void CreateWarehouseItem(WarehouseItemDto dto)
 {
     throw new NotImplementedException();
 }
Example #13
0
 void IWarehouseProvider.CreateWarehouseItem(WarehouseItemDto dto)
 {
     var restRequest = _requestFactory.GetRequest("warehouse", Method.POST, dto);
     var response    = _client.Execute(restRequest);
 }
Example #14
0
        public async Task <IActionResult> Put(Guid id, [FromBody] WarehouseItemDto warehouseItem)
        {
            await _warehouseRepository.Update(WarehouseMapper.MapToWarehouseItem(warehouseItem));

            return(Ok());
        }
Example #15
0
        public async Task <IActionResult> Post([FromBody] WarehouseItemDto warehouseItem)
        {
            await _warehouseRepository.Add(WarehouseMapper.MapToWarehouseItem(warehouseItem));

            return(Ok());
        }
Example #16
0
 internal WarehouseItem MapToWarehouseItem(WarehouseItemDto warehouseItemDto) =>
 _mapper.Map <WarehouseItem>(warehouseItemDto);
Example #17
0
 internal static IWarehouseItem MapToWarehouseItem(WarehouseItemDto warehouseItemDto)
 {
     return Mapper.Map<WarehouseItem>(warehouseItemDto);
 }
 void IWarehouseProvider.CreateWarehouseItem(WarehouseItemDto dto) => GetService(r =>
 {
     Task.Delay(_random.Next(2000)).Wait();
     return(r);
 }).CreateWarehouseItem(dto);
 public bool UpdateWarehouseItem(WarehouseItemDto dto)
 {
     throw new NotImplementedException();
 }