コード例 #1
0
        public async Task Controller_Get_Error_Invalid()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestExampleRequest();

            Assert.Throws <Shared.Exceptions.InvalidResource>(() => controller.Get(new ExampleRequestController.ExampleRequestQuery()));
            Assert.Throws <Shared.Exceptions.InvalidResource>(() => controller.Get(null));
        }
コード例 #2
0
        public async Task Controller_Patch()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestExampleRequest();

            var res = await controller.PatchAsync(1, new ExampleRequestUpdate()
            {
                Message = "test",
                Data    = new ExampleUpdate()
                {
                    Description = "This is a test",
                    Code        = new ExampleUpdate.CodeLine[]
                    {
                        new ExampleUpdate.CodeLine()
                        {
                            Data    = "int main()",
                            Comment = "Useless function"
                        },
                        new ExampleUpdate.CodeLine()
                        {
                            Data = "{"
                        },
                        new ExampleUpdate.CodeLine()
                        {
                            Data = "}"
                        }
                    }
                }
            }) as JsonResult;

            var obj = res.Value as Models.Output.Examples.ExampleRequest;

            Assert.AreEqual("test", obj.Message);
            Assert.AreEqual(1, obj.Data.SymbolId);
            Assert.AreEqual("This is a test", obj.Data.Description);
            Assert.AreEqual("int main()", obj.Data.Code[0].Data);
            Assert.AreEqual("Useless function", obj.Data.Code[0].Comment);
            User.SetPermissions(new string[] { });
            User.User.Id = "45sq6d46qsd";
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.PatchAsync(1, new ExampleRequestUpdate()
            {
                Message = "test"
            }));
        }
コード例 #3
0
        public async Task Controller_Post_DELETE()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestSymbol(new Symbols.SymbolController(smanager, User));

            await controller.PostAsync(new ExampleRequestCreate()
            {
                Method  = Data.Models.Examples.ExampleRequestType.POST,
                Message = "this is a test",
                Data    = new ExampleCreate()
                {
                    SymbolId    = 1,
                    Description = "Test example",
                    Code        = new ExampleCreate.CodeLine[]
                    {
                        new ExampleCreate.CodeLine()
                        {
                            Data = "int main() {}"
                        }
                    }
                }
            });

            await Manager.ApplyRequest(1);

            var res = await controller.PostAsync(new ExampleRequestCreate()
            {
                ApplyTo = 1,
                Method  = Data.Models.Examples.ExampleRequestType.DELETE,
                Message = "Delete first example"
            }) as JsonResult;

            var obj = res.Value as Models.Output.Examples.ExampleRequest;

            Assert.AreEqual("Delete first example", obj.Message);
            Assert.AreEqual(1, obj.ApplyToId);
            Assert.IsNotNull(obj.CreationDate);
            Assert.IsNull(obj.Data);
            User.SetPermissions(new string[] { });
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.PostAsync(new ExampleRequestCreate()
            {
                Method = Data.Models.Examples.ExampleRequestType.DELETE
            }));
        }
コード例 #4
0
        public async Task Controller_GetByQuery()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestExampleRequest();

            var res = controller.Get(new ExampleRequestController.ExampleRequestQuery()
            {
                SymbolId = 1
            }) as JsonResult;
            var obj = res.Value as PageResult <Models.Output.Examples.ExampleRequest>;

            Assert.IsFalse(obj.HasMorePages);
            Assert.AreEqual(1, obj.Count);
            Assert.AreEqual(1, obj.Page);
            Assert.AreEqual("This is a test", obj.Data.First().Message);
            var res1 = controller.Get(new ExampleRequestController.ExampleRequestQuery()
            {
                PageOptions = new PageOptions()
                {
                    Count = 1,
                    Page  = 1
                }
            }) as JsonResult;
            var obj1 = res1.Value as PageResult <Models.Output.Examples.ExampleRequest>;

            Assert.IsFalse(obj.HasMorePages);
            Assert.AreEqual(1, obj.Count);
            Assert.AreEqual(1, obj.Page);
            Assert.AreEqual("This is a test", obj.Data.First().Message);
            User.SetPermissions(new string[] { });
            Assert.Throws <Shared.Exceptions.InsuficientPermission>(() => controller.Get(new ExampleRequestController.ExampleRequestQuery()
            {
                PageOptions = new PageOptions()
                {
                    Count = 1,
                    Page  = 1
                }
            }));
        }
コード例 #5
0
        public async Task Controller_GetById()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestExampleRequest();

            var res = await controller.GetAsync(1) as JsonResult;

            var obj = res.Value as Models.Output.Examples.ExampleRequest;

            Assert.AreEqual("This is a test", obj.Message);
            User.SetPermissions(new string[] { });
            User.User.Id = "45sq6d46qsd";
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.GetAsync(1));
        }
コード例 #6
0
        public async Task Controller_Delete()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleRequestController(User, new ExampleModule(Context), smanager);

            await PostTestExampleRequest();

            Assert.AreEqual(1, Context.ExampleRequests.Count());
            await controller.DeleteAsync(1);

            Assert.AreEqual(0, Context.ExampleRequests.Count());
            Context.RemoveRange(Context.Symbols);
            await Context.SaveChangesAsync();

            await PostTestExampleRequest();

            User.SetPermissions(new string[] { });
            User.User.Id = "45sq6d46qsd";
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.DeleteAsync(2));
        }