Example #1
0
        public void TestCase_UnauthorizeRead()
        {
            var context = fixture.GetCurrentDataContext();

            var control = new UserCollectionsController(context);

            try
            {
                control.Get();
            }
            catch (Exception ex)
            {
                Assert.IsType <UnauthorizedAccessException>(ex);
            }

            try
            {
                control.Get(1);
            }
            catch (Exception ex)
            {
                Assert.IsType <UnauthorizedAccessException>(ex);
            }

            context.Dispose();
        }
Example #2
0
        public async Task TestCase_DeleteWithNonExistID()
        {
            var context = fixture.GetCurrentDataContext();
            UserCollectionsController control = new UserCollectionsController(context);

            var deleterst = control.Delete(999);

            Assert.NotNull(deleterst);
            Assert.IsType <NotFoundResult>(deleterst.Result);

            await context.DisposeAsync();
        }
Example #3
0
        public async Task TestCase_PutWithUnauthorized()
        {
            var context = fixture.GetCurrentDataContext();
            UserCollectionsController control = new UserCollectionsController(context);

            var putrst = control.Put(999, new UserCollection {
                ID = 999
            });

            Assert.NotNull(putrst);
            Assert.IsType <UnauthorizedResult>(putrst.Result);

            await context.DisposeAsync();
        }
Example #4
0
        public async Task TestCase_PutWithInvalidID()
        {
            var context = fixture.GetCurrentDataContext();
            UserCollectionsController control = new UserCollectionsController(context);

            var putrst = control.Put(999, new UserCollection {
                ID = 1
            });

            Assert.NotNull(putrst);
            Assert.IsType <BadRequestObjectResult>(putrst.Result);

            await context.DisposeAsync();
        }
Example #5
0
        public async Task TestCase_PutWithInvalidModelState()
        {
            var context = fixture.GetCurrentDataContext();
            UserCollectionsController control = new UserCollectionsController(context);

            control.ModelState.AddModelError("Title", "The Title field is required.");

            var putrst = control.Put(999, null);

            Assert.NotNull(putrst);
            Assert.IsType <BadRequestObjectResult>(putrst.Result);

            await context.DisposeAsync();
        }
Example #6
0
        public async Task TestCase_CURD(string usr)
        {
            var context = fixture.GetCurrentDataContext();
            UserCollectionsController control = new UserCollectionsController(context);
            var userclaim = DataSetupUtility.GetClaimForUser(usr);

            control.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = userclaim
                }
            };

            // Step 1. Get all
            var getallrst = control.Get();

            Assert.NotNull(getallrst);
            var collindb = context.UserCollections.AsNoTracking().Where(p => p.User == usr).ToList();

            Assert.Equal(collindb.Count, getallrst.Count());

            // Step 2. Create one
            var createdone = new UserCollection()
            {
                Name    = "Test 1" + usr,
                Comment = "Test",
                User    = usr,
            };
            var createditem = new UserCollectionItem()
            {
                RefType = TagRefType.KnowledgeItem,
                RefID   = DataSetupUtility.Knowledge1ID
            };

            createdone.Items.Add(createditem);
            var postrst = await control.Post(createdone);

            Assert.NotNull(postrst);
            var postcreatedrst = Assert.IsType <CreatedODataResult <UserCollection> >(postrst);
            var crtid          = postcreatedrst.Entity.ID;

            objectsCreated.Add(crtid);
            Assert.Equal(createdone.User, postcreatedrst.Entity.User);
            Assert.Equal(createdone.Name, postcreatedrst.Entity.Name);
            Assert.Equal(createdone.Comment, postcreatedrst.Entity.Comment);
            var collitemindb = context.UserCollectionItems.AsNoTracking().Where(p => p.ID == crtid).ToList();

            Assert.Single(collitemindb);
            Assert.Equal(createditem.RefType, collitemindb[0].RefType);
            Assert.Equal(createditem.RefID, collitemindb[0].RefID);

            // Step 3. Get single
            var getsinglerst = control.Get(crtid);

            Assert.NotNull(getsinglerst);
            var getrstresult = Assert.IsType <SingleResult <UserCollection> >(getsinglerst);
            var readitem     = getrstresult.Queryable.ToList().ElementAtOrDefault(0);

            Assert.NotNull(readitem);
            Assert.Equal(crtid, readitem.ID);
            Assert.Equal(createdone.User, readitem.User);
            Assert.Equal(createdone.Name, readitem.Name);
            Assert.Equal(createdone.Comment, readitem.Comment);

            // Step 4. Change via PUT
            readitem.Comment += "Changed";
            readitem.Items.Clear();
            createditem = new UserCollectionItem()
            {
                RefID      = DataSetupUtility.Exercise1ID,
                RefType    = TagRefType.ExerciseItem,
                ID         = crtid,
                Collection = readitem,
            };
            readitem.Items.Add(createditem);
            var putrst = await control.Put(crtid, readitem);

            Assert.NotNull(putrst);
            var putokrst = Assert.IsType <OkObjectResult>(putrst);

            Assert.NotNull(putokrst);
            var putokrstobj = Assert.IsType <UserCollection>(putokrst.Value);

            Assert.Equal(readitem.ID, putokrstobj.ID);
            Assert.Equal(readitem.User, putokrstobj.User);
            Assert.Equal(readitem.Name, putokrstobj.Name);
            Assert.Equal(readitem.Comment, putokrstobj.Comment);
            collindb     = context.UserCollections.AsNoTracking().Where(p => p.User == usr).ToList();
            collitemindb = context.UserCollectionItems.AsNoTracking().Where(p => p.ID == crtid).ToList();
            Assert.Single(collindb);
            Assert.Single(collitemindb);
            Assert.Equal(readitem.Comment, collindb[0].Comment);
            Assert.Equal(createditem.RefID, collitemindb[0].RefID);
            Assert.Equal(createditem.RefType, collitemindb[0].RefType);

            // Step 5. Delete
            var delrst = await control.Delete(crtid);

            Assert.NotNull(delrst);
            var delrtn = Assert.IsType <StatusCodeResult>(delrst);

            objectsCreated.Remove(crtid);

            await context.DisposeAsync();
        }
Example #7
0
 public UserCollectionsControllerTests()
 {
     controller = new UserCollectionsController(new BookmarkerTestContext());
     controller.ControllerContext.Configuration = new System.Web.Http.HttpConfiguration();
     controller.Request = new System.Net.Http.HttpRequestMessage();
 }