public async Task GetCardTemplatesWithSearchTextTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); Dictionary <string, object> parameters = new Dictionary <string, object>() { { EntityControllerBase <CardTemplate, long> .SearchTextParameter, "test123" } }; //No cards matching the search text ActionResult <List <CardTemplate> > result = await controller.GetAsync(parameters); Assert.AreEqual(0, result.Value.Count); //Search text is template id parameters[EntityControllerBase <Card, long> .SearchTextParameter] = "1"; result = await controller.GetAsync(parameters); Assert.AreEqual(1, result.Value.Count); Assert.AreEqual(template1.CardTemplateId, result.Value[0].CardTemplateId); //title contains the search text parameters[EntityControllerBase <Card, long> .SearchTextParameter] = "fault"; result = await controller.GetAsync(parameters); Assert.AreEqual(1, result.Value.Count); Assert.AreEqual(template1.CardTemplateId, result.Value[0].CardTemplateId); //One of the field names contains the search text parameters[EntityControllerBase <Card, long> .SearchTextParameter] = "Fro"; result = await controller.GetAsync(parameters); Assert.AreEqual(1, result.Value.Count); Assert.AreEqual(template1.CardTemplateId, result.Value[0].CardTemplateId); }
public async Task AddNewFieldDefinitionOnPutCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //Save changed entity CardFieldDefinition fieldDefinition2 = new CardFieldDefinition() { CardTemplateId = 1, FieldName = "Field2", }; template1.FieldDefinitions.Add(fieldDefinition2); ActionResult <CardTemplate> result = await controller.PutAsync(template1); Assert.IsNotNull(result.Value); CardTemplate template3 = context.Set <CardTemplate>().FirstOrDefault(template => template.CardTemplateId == 1); Assert.AreEqual(2, template3.FieldDefinitions.Count); Assert.AreEqual(2, template3.FieldDefinitions[1].FieldId); Card card1 = context.Set <Card>().Include(card => card.Fields).FirstOrDefault(card => card.CardId == 1); Assert.AreEqual(2, card1.Fields.Count); Assert.AreEqual("Field2", card1.Fields.OrderBy(field => field.FieldId).ToList()[1].FieldName); }
public async Task GetCardTemplatesTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); Dictionary <string, object> parameters = new Dictionary <string, object>(); //Get all templates of user ActionResult <List <CardTemplate> > result = await controller.GetAsync(parameters); Assert.AreEqual(2, result.Value.Count); Assert.AreEqual(1, result.Value[1].FieldDefinitions.Count); }
public async Task RemoveFieldDefinitionOnPutCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //Save changed entity template1.FieldDefinitions.Clear(); ActionResult <CardTemplate> result = await controller.PutAsync(template1); Assert.IsNotNull(result.Value); CardTemplate template3 = context.Find <CardTemplate>((long)1); Assert.AreEqual(0, template3.FieldDefinitions.Count); Card card1 = context.Find <Card>((long)1); Assert.AreEqual(0, card1.Fields.Count); }
public async Task PostCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //null as parameter -> bad request ActionResult <CardTemplate> result = await controller.PostAsync(null); Assert.IsTrue(result.Result is BadRequestResult); //Create new valid entity CardTemplate cardTemplate1 = new CardTemplate() { CardTemplateId = 4, Title = "test123" }; CardFieldDefinition fieldDefinition = new CardFieldDefinition() { FieldName = "test", CardTemplateId = 4 }; cardTemplate1.FieldDefinitions.Add(fieldDefinition); result = await controller.PostAsync(cardTemplate1); Assert.IsNotNull(result.Value); cardTemplate1 = context.Set <CardTemplate>() .Include(template => template.FieldDefinitions) .SingleOrDefault(field => field.CardTemplateId == 4); Assert.IsNotNull(cardTemplate1); Assert.AreEqual(User.UserId, cardTemplate1.UserId); Assert.AreEqual(1, cardTemplate1.FieldDefinitions[0].FieldId); //Invalid template is validated bool wasThrown = false; try { result = await controller.PostAsync(new CardTemplate()); } catch (NotifyException) { wasThrown = true; } Assert.IsTrue(wasThrown); }
public async Task PutCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //null as parameter -> bad request ActionResult <CardTemplate> result = await controller.PutAsync(null); Assert.IsTrue(result.Result is BadRequestResult); //template does not exist in db -> not found CardTemplate newTemplate = new CardTemplate() { CardTemplateId = 5, Title = "dfsdf" }; result = await controller.PutAsync(newTemplate); Assert.IsTrue(result.Result is NotFoundResult); //Save changed entity template2.Title = "New Title"; result = await controller.PutAsync(template2); Assert.IsNotNull(result.Value); CardTemplate template3 = context.Find <CardTemplate>(template2.CardTemplateId); Assert.AreEqual("New Title", template3.Title); Assert.AreEqual(1, template3.FieldDefinitions.Count); //Invalid template is validated bool wasThrown = false; try { result = await controller.PostAsync(new CardTemplate()); } catch (NotifyException) { wasThrown = true; } Assert.IsTrue(wasThrown); }
public async Task UpdateFieldDefinitionOnPutCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //Save changed entity template1.FieldDefinitions[0].FieldName = "NewFieldName"; template1.FieldDefinitions[0].ShowInputForPractice = true; ActionResult <CardTemplate> result = await controller.PutAsync(template1); Assert.IsNotNull(result.Value); CardFieldDefinition definition3 = context.Find <CardFieldDefinition>(template1.CardTemplateId, 1); Assert.IsTrue(definition3.ShowInputForPractice); Assert.AreEqual("NewFieldName", definition3.FieldName); Card card1 = context.Set <Card>().SingleOrDefault(card => card.CardId == 1); Assert.AreEqual(1, card1.Fields.Count); Assert.AreEqual("NewFieldName", card1.Fields[0].FieldName); }
public async Task GetTemplateByIdTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //get template successfully ActionResult <CardTemplate> result = await controller.GetAsync(3); Assert.IsNotNull(result.Value); Assert.AreEqual(1, result.Value.FieldDefinitions.Count); //template of other user -> unauthorized result = await controller.GetAsync(2); Assert.IsTrue(result.Result is UnauthorizedResult); //template does not exist -> not found result = await controller.GetAsync(4); Assert.IsTrue(result.Result is NotFoundResult); }
public async Task DeleteCardTemplateTest() { using DbContext context = CreateContext(); CardTemplatesController controller = CreateController(context); //null as parameter -> bad request IActionResult result = await controller.DeleteAsync(null); Assert.IsTrue(result is BadRequestResult); //template does not exist -> not found result = await controller.DeleteAsync(new CardTemplate()); Assert.IsTrue(result is NotFoundResult); //delete existing entity result = await controller.DeleteAsync(template2); Assert.IsTrue(result is OkResult); CardTemplate template1 = context.Find <CardTemplate>((long)3); Assert.IsNull(template1); }