コード例 #1
0
        public async void UpdateSoftware_Put()
        {
            var query = new SoftwaresController(context);

            var newSoftware = new Software {
                Id = 3, Name = "Row And Go!!!"
            };

            // https://stackoverflow.com/questions/36856073/the-instance-of-entity-type-cannot-be-tracked-because-another-instance-of-this-t/42475617
            var local = context.Software.Local.Where(t => t.Id == 3).FirstOrDefault();

            if (local != null)
            {
                context.Entry(local).State = EntityState.Detached; // only needed for xUnit testing
            }
            var result = await query.PutSoftware(3, newSoftware);  // async

            var added = await query.GetSoftware(3);                // async

            var addedGoodRequest = Assert.IsType <Software>(added.Value);

            Assert.Equal(newSoftware.Name, added.Value.Name);
            Assert.Equal(newSoftware.Id, added.Value.Id);
            Assert.Equal(newSoftware, added.Value);
            Assert.Equal(newSoftware, addedGoodRequest);
            //Assert.Equal(newSoftware, result); // No Content returned so can't check it without changing return value
        }
コード例 #2
0
        public void PutSoftware_ShouldFail_WhenDifferentId()
        {
            var controller = new SoftwaresController(new TestLicenseManagerContext());

            var badresult = controller.PutSoftware(999, GetDemoSoftware());

            Assert.IsInstanceOfType(badresult, typeof(BadRequestResult));
        }
コード例 #3
0
        public async void GetSoftware_Get_Id_2()
        {
            var query = new SoftwaresController(context);

            var result = await query.GetSoftware(2);  // async

            Assert.Equal("GymBooker", result.Value.Name);
        }
コード例 #4
0
        public async void GetSoftware_Returns_OK()
        {
            var query = new SoftwaresController(context);

            var result = await query.GetSoftware(2);  // async

            Assert.IsType <ActionResult <Software> >(result);
        }
コード例 #5
0
        public async void Check_All_Received()
        {
            var query = new SoftwaresController(context);

            var result = await query.GetSoftware();  // async

            Assert.Equal(3, result.Value.ToList().Count);
            Assert.Equal(3, result.Value.Count());
        }
コード例 #6
0
        public async void GetAllSoftware_Check_First_And_Last()
        {
            var query = new SoftwaresController(context);

            var result = await query.GetSoftware();  // async

            Assert.Equal("TrackIT", result.Value.First().Name);
            Assert.Equal("Row&Go!", result.Value.Last().Name);
        }
コード例 #7
0
        public void GetSoftware_ShouldReturnNotFound_WhenInvalidId()
        {
            var controller = new SoftwaresController(new TestLicenseManagerContext());

            var result = controller.GetSoftware(-1, 999);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(NotFoundResult));
        }
コード例 #8
0
        public async void DeleteSoftware_Delete_Id_3()
        {
            var query = new SoftwaresController(context);

            SeedCases(context);
            var result = await query.DeleteSoftware(3);  // async

            Assert.Equal("Row&Go!", result.Value.Name);
        }
コード例 #9
0
        public void GetSoftwares_ShouldReturnAllSoftwares()
        {
            var context    = GetDemoContext();
            var controller = new SoftwaresController(context);

            var result = controller.GetSoftwares() as TestSoftwareDbSet;

            Assert.IsNotNull(result);
            Assert.AreEqual(context.Softwares.Local.Count, result.Local.Count);
        }
コード例 #10
0
        public void PostSoftware_ShouldFail_WhenInvalidManufacturerId()
        {
            var controller = new SoftwaresController(new TestLicenseManagerContext());
            var item       = GetDemoSoftware();

            var result = controller.PostSoftware(item);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult));
        }
コード例 #11
0
        public void PutSoftware_ShouldReturnStatusCode()
        {
            var controller = new SoftwaresController(GetDemoContext());
            var item       = GetDemoSoftware();

            var result = controller.PutSoftware(item.SoftwareId, item) as StatusCodeResult;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(StatusCodeResult));
            Assert.AreEqual(HttpStatusCode.NoContent, result.StatusCode);
        }
コード例 #12
0
        public void PostSoftware_ShouldReturnSameSoftware()
        {
            var controller = new SoftwaresController(GetDemoContext());
            var item       = GetDemoSoftware();

            var result = controller.PostSoftware(item) as CreatedAtRouteNegotiatedContentResult <Software>;

            Assert.IsNotNull(result);
            Assert.AreEqual(result.RouteName, "DefaultApi");
            Assert.AreEqual(result.RouteValues["id"], result.Content.SoftwareId);
            Assert.AreEqual(result.Content.Name, item.Name);
        }
コード例 #13
0
        public async void PostSoftware_Returns_OK()
        {
            var query = new SoftwaresController(context);

            var newSoftware = new Software {
                Id = 4, Name = "Bengal Tiger"
            };
            var result = await query.PostSoftware(newSoftware);  // async

            Assert.IsType <ActionResult <Software> >(result);
            Assert.IsType <CreatedAtActionResult>(result.Result);
        }
コード例 #14
0
        public void GetSoftware_ShouldReturnSoftwareWithSameId()
        {
            var context = GetDemoContext();
            var item    = GetDemoSoftware();

            context.Softwares.Add(item);
            var controller = new SoftwaresController(context);

            var result = controller.GetSoftware(-1, item.SoftwareId) as OkNegotiatedContentResult <Software>;

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Content.SoftwareId, item.SoftwareId);
        }
コード例 #15
0
        public async void DeleteSoftware_Delete_Id_2_With_Cases()
        {
            var query = new SoftwaresController(context);

            SeedCases(context);

            var result = await query.DeleteSoftware(2);  // async

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(result.Result);

            Assert.Contains("cannot delete", badRequestResult.Value.ToString());
            Assert.Equal(400, badRequestResult.StatusCode);
            Assert.IsType <BadRequestObjectResult>(result.Result);
        }
コード例 #16
0
        public void PutSoftware_ShouldFail_WhenInvalidManufacturerId()
        {
            var context = GetDemoContext();
            var item    = GetDemoSoftware();

            context.Softwares.Add(item);
            var controller = new SoftwaresController(context);

            item.ManufacturerId = 999;

            var result = controller.PutSoftware(item.SoftwareId, item);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult));
        }
コード例 #17
0
        public async void UpdateSoftware_Returns_OK()
        {
            var query = new SoftwaresController(context);

            var newSoftware = new Software {
                Id = 3, Name = "Row And Go!!!"
            };

            // https://stackoverflow.com/questions/36856073/the-instance-of-entity-type-cannot-be-tracked-because-another-instance-of-this-t/42475617
            var local = context.Software.Local.Where(t => t.Id == 3).FirstOrDefault();

            if (local != null)
            {
                context.Entry(local).State = EntityState.Detached; // only needed for xUnit testing
            }
            var result = await query.PutSoftware(3, newSoftware);  // async

            Assert.IsType <NoContentResult>(result);
        }
コード例 #18
0
        public async void PostSoftware_Add()
        {
            var query = new SoftwaresController(context);

            var newSoftware = new Software {
                Id = 4, Name = "Bengal Tiger"
            };

            var result = await query.PostSoftware(newSoftware); // async

            var added = await query.GetSoftware(4);             // async

            var resultGoodRequest = Assert.IsType <CreatedAtActionResult>(result.Result);
            var addedGoodRequest  = Assert.IsType <Software>(added.Value);

            Assert.Equal(newSoftware.Name, added.Value.Name);
            Assert.Equal(newSoftware.Id, added.Value.Id);
            Assert.Equal(newSoftware, added.Value);
            Assert.Equal(newSoftware, resultGoodRequest.Value);
            Assert.Equal(newSoftware, addedGoodRequest);
        }