示例#1
0
        public void UpdateBike_Updates_Bike()
        {
            var testId = 1;
            var bike   = new BikeEntity();
            var dto    = new BikeDto
            {
                Id          = Guid.NewGuid(),
                BikeModelId = Guid.NewGuid(),
                BikeColorId = testId,
                WheelSizeId = testId,
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.UpdateBike(dto);

            mockRepo.Verify(r => r.Update(
                                It.Is <BikeEntity>(b =>
                                                   b.IsActive == true &&
                                                   b.BikeColorId == dto.BikeColorId &&
                                                   b.BikeModelId == dto.BikeModelId &&
                                                   b.WheelSizeId == dto.WheelSizeId &&
                                                   b.PurchaseDate.Date == DateTime.UtcNow.Date &&
                                                   b.RemovedFromInventoryDate == null)),
                            Times.Once);
        }
示例#2
0
 public void Delete(BikeEntity bike)
 {
     bike.IsActive = false;
     bike.RemovedFromInventoryDate = DateTime.UtcNow;
     _context.Bikes.Update(bike);
     _context.SaveChanges();
 }
示例#3
0
        public void CompareObjectProperties_Returns_4_Results()
        {
            var startIntId = 1;
            var endIntId   = 2;
            var bike       = new BikeEntity
            {
                BikeModelId = Guid.NewGuid(),
                BikeColorId = startIntId,
                WheelSizeId = startIntId,
            };

            var dto = new BikeDto
            {
                IsActive        = false,
                BikeModelId     = Guid.NewGuid(),
                BikeColorId     = endIntId,
                WheelSizeId     = endIntId,
                CurrentStatusId = endIntId
            };

            var excludedProperties = new List <string> {
                "id", "PurchaseDate", "RemovedFromInventoryDate"
            };
            var actual = objectInspectionService.GetDifferentPropertyValues(bike, dto, excludedProperties);

            var expectedCount = 5; // amount of properties in dto

            Assert.AreEqual(expectedCount, actual.Count());
        }
示例#4
0
        public void CompareObjectProperties_Returns_Bike_With_DtosProperties()
        {
            var startIntId = 1;
            var endIntId   = 2;
            var bike       = new BikeEntity
            {
                BikeModelId = Guid.NewGuid(),
                BikeColorId = startIntId,
                WheelSizeId = startIntId,
            };

            var dto = new BikeDto
            {
                IsActive    = false,
                BikeModelId = Guid.NewGuid(),
                BikeColorId = endIntId,
                WheelSizeId = endIntId,
            };

            IEnumerable <ObjectPropertyDifference> expected = new List <ObjectPropertyDifference>
            {
                new ObjectPropertyDifference
                {
                    PropertyName = "BikeColorId",
                    LeftValue    = bike.BikeColorId.ToString(),
                    RightValue   = dto.BikeColorId.ToString()
                },
                new ObjectPropertyDifference
                {
                    PropertyName = "BikeModelId",
                    LeftValue    = bike.BikeModelId.ToString(),
                    RightValue   = dto.BikeModelId.ToString()
                },
                new ObjectPropertyDifference
                {
                    PropertyName = "IsActive",
                    LeftValue    = bike.IsActive.ToString(),
                    RightValue   = dto.IsActive.ToString()
                },
                new ObjectPropertyDifference
                {
                    PropertyName = "WheelSizeId",
                    LeftValue    = bike.WheelSizeId.ToString(),
                    RightValue   = dto.WheelSizeId.ToString()
                },
            };

            var excludedProperties = new List <string> {
                "id", "PurchaseDate", "LastCheckedOutDate", "LastReturnedDate", "LastRepairedDate", "RemovedFromInventoryDate"
            };
            var actual = objectInspectionService.GetDifferentPropertyValues(bike, dto, excludedProperties);

            Assert.IsTrue(expected.All(e => actual.Any(a =>
                                                       a.PropertyName == e.PropertyName &&
                                                       a.LeftValue == e.LeftValue &&
                                                       a.RightValue == e.RightValue)));
        }
示例#5
0
        public Bike GetBikeByID(int bikeID)
        {
            if (bikeID == 0)
            {
                return(null);
            }
            BikeEntity bike   = _db.Set <BikeEntity>().Where(x => x.ID == bikeID).FirstOrDefault();
            var        entity = bike.Map();

            entity.BikeType = bike.BikeType.Map();
            return(entity);
        }
示例#6
0
        public void CreateNewBike_Calls_CreateHistoryItem_In_BikeHistoryService()
        {
            var entity      = new BikeEntity();
            var dto         = new BikeDto();
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.Insert(It.IsAny <BikeEntity>())).Returns(entity);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.CreateNewBike(dto);

            mockHistoryService.Verify(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>()), Times.Once);
        }
示例#7
0
        public async Task <Bike> CreateBike(Bike bike)
        {
            if (bike == null)
            {
                throw new Exception("Invalid bike");
            }
            BikeEntity entity = bike.Map();

            _db.Set <BikeEntity>().Add(entity);
            await _db.SaveChangesAsync();

            bike.ID = entity.ID;
            return(bike);
        }
示例#8
0
        public void GetById_Returns_BikeDto()
        {
            var details = new BikeEntity();
            var dto     = new BikeDto();

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>()))
            .Returns(details);

            mockMapper.Setup(m => m.Map <BikeDto>(details))
            .Returns(dto);

            BikeDto actual = bikeService.GetById(Guid.NewGuid());

            Assert.AreEqual(dto, actual);
        }
示例#9
0
        public void CreateNewBike_Returns_BikeDto()
        {
            var entity      = new BikeEntity();
            var dto         = new BikeDto();
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.Insert(It.IsAny <BikeEntity>())).Returns(entity);
            mockMapper.Setup(m => m.Map <BikeDto>(entity)).Returns(dto);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            var actual = bikeService.CreateNewBike(dto);

            Assert.AreEqual(dto, actual);
        }
示例#10
0
        public void RemoveBike_Calls_CreateHistoryItem_In_BikeHistoryItemService()
        {
            var testStatus = Status.Fixed;
            var bike       = new BikeEntity();
            var dto        = new BikeDto
            {
                Id = Guid.NewGuid()
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.RemoveBike(dto.Id, testStatus);

            mockHistoryService.Verify(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>()), Times.Once);
        }
示例#11
0
        public void ChangeStatus_Calls_Update_In_Repo()
        {
            var testStatus = Status.Fixed;
            var bike       = new BikeEntity();
            var dto        = new BikeDto
            {
                Id = Guid.NewGuid(),
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.ChangeStatus(dto.Id, testStatus);

            mockRepo.Verify(r => r.Update(It.IsAny <BikeEntity>()), Times.Once);
        }
示例#12
0
        public static Bike Map(this BikeEntity bike)
        {
            if (bike == null)
            {
                return(null);
            }
            Bike bikeModel = new Bike
            {
                ID            = bike.ID,
                Brand         = bike.Brand,
                FrameMaterial = bike.FrameMaterial,
                Name          = bike.Name,
                Price         = bike.Price,
                Wheels        = bike.Wheels,
                ImageLocation = bike.ImageLocation,
                BikeTypeID    = bike.BikeTypeID
            };

            return(bikeModel);
        }
示例#13
0
        public void RemoveBike_Updates_Bike()
        {
            var testStatus = Status.Fixed;
            var bike       = new BikeEntity();
            var dto        = new BikeDto
            {
                Id = Guid.NewGuid()
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.RemoveBike(dto.Id, testStatus);

            mockRepo.Verify(r => r.Delete(
                                It.Is <BikeEntity>(b =>
                                                   b.CurrentStatusId == (int)testStatus)),
                            Times.Once);
        }
示例#14
0
        public void UpdateBike_Calls_CompareObjectProperties_In_ObjectInspectionService()
        {
            var testId = 1;
            var bike   = new BikeEntity();
            var dto    = new BikeDto
            {
                Id          = Guid.NewGuid(),
                BikeModelId = Guid.NewGuid(),
                BikeColorId = testId,
                WheelSizeId = testId,
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.UpdateBike(dto);

            mockInspectionService.Verify(r => r.GetDifferentPropertyValues(It.IsAny <BikeEntity>(), It.IsAny <BikeDto>(), It.IsAny <List <string> >()), Times.Once);
        }
示例#15
0
        public void UpdateBike_Calls_CreateHistoryItem_In_HistoryService()
        {
            var testId = 1;
            var bike   = new BikeEntity();
            var dto    = new BikeDto
            {
                Id          = Guid.NewGuid(),
                BikeModelId = Guid.NewGuid(),
                BikeColorId = testId,
                WheelSizeId = testId,
            };
            var historyItem = new BikeHistoryItemDto {
                Id = Guid.NewGuid()
            };

            mockRepo.Setup(r => r.GetById(It.IsAny <Guid>())).Returns(bike);
            mockHistoryService.Setup(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>())).Returns(historyItem);
            bikeService.UpdateBike(dto);

            mockHistoryService.Verify(r => r.CreateHistoryItem(It.IsAny <BikeHistoryItemDto>()), Times.Once);
        }
示例#16
0
 public BikeEntity Insert(BikeEntity bike)
 {
     _context.Bikes.Add(bike);
     _context.SaveChanges();
     return(bike);
 }
示例#17
0
 public void Update(BikeEntity bike)
 {
     _context.Bikes.Update(bike);
     _context.SaveChanges();
 }