예제 #1
0
        public async Task Controller_Post()
        {
            var smanager = new SymbolManager(Context, new Config()
            {
                MaxSymsPerPage = 15
            });
            var controller = new ExampleController(User, new ExampleModule(Context), smanager);
            var sym        = await PostTestSymbol(new Symbols.SymbolController(smanager, User));

            var res = await controller.PostAsync(new ExampleCreate()
            {
                SymbolId    = 1,
                Description = "This is a test example",
                Code        = new ExampleCreate.CodeLine[]
                {
                    new ExampleCreate.CodeLine()
                    {
                        Data    = "void main()",
                        Comment = ""
                    },
                    new ExampleCreate.CodeLine()
                    {
                        Data    = "{",
                        Comment = ""
                    },
                    new ExampleCreate.CodeLine()
                    {
                        Data    = "}",
                        Comment = ""
                    }
                }
            }) as JsonResult;

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

            Assert.AreEqual(1, obj.SymbolId);
            Assert.AreEqual(3, obj.Code.Length);
            Assert.AreEqual("This is a test example", obj.Description);
            User.SetPermissions(new string[] { });
            Assert.ThrowsAsync <Shared.Exceptions.InsuficientPermission>(() => controller.PostAsync(new ExampleCreate()));
        }