public async Task GetGear_CallWithIdThatDoesntExist_ShouldReturnNotFound()
        {
            var mockRepo          = new Mock <IGearRepository>();
            var controller        = new GearController(mockRepo.Object);
            var nonExistentGearId = 42;

            var result = await controller.GetGear(nonExistentGearId);

            Assert.IsType <NotFoundResult>(result.Result);
        }
        public async Task GetGear_CallWithAnIdThatExists_ShouldReturnCorrectGear()
        {
            var mockRepo = new Mock <IGearRepository>();

            mockRepo.Setup(repo => repo.GetByIdAsync(It.IsAny <long>()).Result)
            .Returns(MockGear());

            var controller = new GearController(mockRepo.Object);

            var result = await controller.GetGear(1);

            var gear = result.Value;

            Assert.IsType <GearDTO>(gear);
            Assert.Equal("Cam", gear.Name);
        }
        public async Task GetGear_CallGetGearWithNoId_ShouldReturnAllGear()
        {
            var mockList = MockDTOList();
            var mockRepo = new Mock <IGearRepository>();

            mockRepo.Setup(repo => repo.DTOListAsync().Result).Returns(mockList);


            var controller = new GearController(mockRepo.Object);

            var result = await controller.GetGear();

            var gearList = new List <GearDTO>(result.Value);

            Assert.Equal(3, gearList.Count);
            Assert.Equal(mockList[0], gearList[0]);
            Assert.Equal(mockList[1], gearList[1]);
            Assert.Equal(mockList[2], gearList[2]);
        }