public async Task ApplyRequest_PATCH() { //POST request await PostTestExampleRequest(); Assert.AreEqual(1, Context.ExampleRequests.Count()); await Manager.ApplyRequest(Context.ExampleRequests.First().Id); Assert.AreEqual(0, Context.ExampleRequests.Count()); Assert.AreEqual(1, Context.Examples.Count()); Assert.IsNull(Context.Examples.First().Request); Assert.AreEqual(3, Context.ExampleCodeLines.Count()); Assert.AreEqual("This is a test example", Context.Examples.First().Description); var ex = new ExampleRequestCreate() { Message = "Patching an example", Method = Data.Models.Examples.ExampleRequestType.PATCH, ApplyTo = 1, Data = new ExampleCreate() { Description = "This has been updated", Code = new ExampleCreate.CodeLine[] { new ExampleCreate.CodeLine() { Data = "void main() { }", Comment = "inline main function" } } } }.CreateModel(); ex.Data.Symbol = Context.Symbols.First(); ex.Data.User = User.User; await Manager.PostAsync(ex); Assert.AreEqual(1, Context.ExampleRequests.Count()); Assert.IsNull(Context.Examples.First().Request); Assert.IsNotNull(Context.Examples.Last().Request); await Manager.ApplyRequest(Context.ExampleRequests.First().Id); Assert.AreEqual(0, Context.ExampleRequests.Count()); Assert.AreEqual("This has been updated", Context.Examples.First().Description); Assert.AreEqual(1, Context.ExampleCodeLines.Count()); Assert.AreEqual("void main() { }", Context.Examples.First().Code.First().Data); Assert.AreEqual("inline main function", Context.Examples.First().Code.First().Comment); }
private async Task PostTestExampleRequest() { var sym = await PostTestSymbol(new Symbols.SymbolController(new SymbolManager(Context, new Config() { MaxSymsPerPage = 15 }), User)); var ex = new ExampleRequestCreate() { Message = "This is a test", Method = Data.Models.Examples.ExampleRequestType.POST, Data = new ExampleCreate() { 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 = "" } } } }.CreateModel(); ex.Data.Symbol = sym; ex.Data.User = User.User; await Manager.PostAsync(ex); }
public async Task Post_Error_Invalid() { var sym = await PostTestSymbol(new Symbols.SymbolController(new SymbolManager(Context, new Config() { MaxSymsPerPage = 15 }), User)); var ex = new ExampleRequestCreate() { Message = "This is a test", Method = Data.Models.Examples.ExampleRequestType.POST, Data = new ExampleCreate() { 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 = "" } } } }.CreateModel(); ex.Data.Symbol = sym; ex.Data.User = User.User; //Invalid POST var old = ex.Data; ex.Data = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); ex.Data = old; ex.ApplyToId = 1; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); ex.ApplyToId = null; ex.Data.Symbol = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); ex.Data.User = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); //Invalid PATCH ex.Type = Data.Models.Examples.ExampleRequestType.PATCH; old = ex.Data; ex.Data = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); ex.Data = old; ex.ApplyToId = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); //Invalid DELETE ex.Type = Data.Models.Examples.ExampleRequestType.DELETE; ex.ApplyToId = 1; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); ex.Data = null; ex.ApplyToId = null; Assert.ThrowsAsync <Shared.Exceptions.InvalidResource>(() => Manager.PostAsync(ex)); }