[InlineData("Football", "", TodoStatus.InProgress, "2020-05-15T14:29:15.1823029Z", "2020-05-19T21:00:00.0000000Z")] // without Description public void GivenValidTodo_Insert_AddsTodo(string title, string description, TodoStatus status, string createdOn, string dueDate) { var repo = new Xml.TodoRepository(MockXmlContext.Object); var entity = new TodoModel() { Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn), DueDate = DateTime.Parse(dueDate) }; var todo = repo.Insert(entity); var all = Container.Elements(); var element = all.First(a => a.Attribute("Id").Value == todo.Id.ToString()); Assert.NotNull(element); Assert.Equal(todo.Id.ToString(), element.Attribute("Id").Value); Assert.Equal(todo.Title, element.Element("Title").Value); Assert.Equal(todo.Description, element.Element("Description").Value); Assert.Equal(todo.Status.ToString(), element.Element("Status").Value); Assert.Equal(todo.CreatedOn.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("CreatedOn").Value); Assert.Equal(todo.DueDate.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("DueDate").Value); }
public void GivenValidID_GetById_ReturnsCorrectTodo() { //arrange var expectedTodo = new TodoModel(); var guid = Guid.Parse("00000000-0000-0000-0000-000000000001"); expectedTodo.Id = guid; expectedTodo.Title = "Unit tests"; expectedTodo.Description = "Learn how to make unit tests"; expectedTodo.Status = TodoStatus.Open; expectedTodo.CreatedOn = DateTime.Parse("2020-04-15T14:29:15.1823029Z", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind); expectedTodo.DueDate = DateTime.Parse("2020-04-19T21:00:00.0000000Z", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind); var repo = new Xml.TodoRepository(MockXmlContext.Object); //act var todo = repo.GetById(guid); //assert Assert.Equal(todo.Id, expectedTodo.Id); Assert.Equal(todo.Title, expectedTodo.Title); Assert.Equal(todo.Description, expectedTodo.Description); Assert.Equal(todo.Status, expectedTodo.Status); Assert.Equal(todo.CreatedOn, expectedTodo.CreatedOn); Assert.Equal(todo.DueDate, expectedTodo.DueDate); }
[InlineData("Football", "", TodoStatus.InProgress, "2020-05-15T14:29:15.1823029Z", "2020-05-19T21:00:00.0000000Z")] // without Description public void GivenValidTodo_Insert_ReturnsNewTodo(string title, string description, TodoStatus status, string createdOn, string dueDate) { //arrange var repo = new Xml.TodoRepository(MockXmlContext.Object); var entity = new TodoModel() { Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind), DueDate = DateTime.Parse(dueDate, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) }; //act var todo = repo.Insert(entity); //assert Assert.NotNull(todo); Assert.NotEmpty(todo.Id.ToString()); Assert.NotEqual("00000000-0000-0000-0000-000000000000", todo.Id.ToString()); Assert.Equal(todo.Title, entity.Title); Assert.Equal(todo.Description, entity.Description); Assert.Equal(todo.Status, entity.Status); Assert.Equal(todo.CreatedOn, entity.CreatedOn); Assert.Equal(todo.DueDate, entity.DueDate); }
[InlineData("600e0400-3c00-0000-3000-020050000001", "Football", "", TodoStatus.InProgress, "2020-05-15T14:29:15.1823029Z", "2020-05-19T21:00:00.0000000Z")] // without Description public void GivenNotExistedId_Update_DoesNothing(string id, string title, string description, TodoStatus status, string createdOn, string dueDate) { //arrange var todo = new TodoModel() { Id = Guid.Parse(id), Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn), DueDate = DateTime.Parse(dueDate) }; var repo = new Xml.TodoRepository(MockXmlContext.Object); //act todo.Title = "Concert"; todo.Description = "Go to Metallica concert"; repo.Update(todo); //assert var all = Container.Elements(); var element = all.FirstOrDefault(a => a.Attribute("Id").Value == todo.Id.ToString()); Assert.Null(element); }
[InlineData("a00e0400-3000-0000-3000-000050000001", "Football", "", TodoStatus.InProgress, "2020-05-15T14:29:15.1823029Z", "2020-05-19T21:00:00.0000000Z")] // without Description public void GivenValidEntity_Update_UpdateEntity(string id, string title, string description, TodoStatus status, string createdOn, string dueDate) { //arrange var todo = new TodoModel() { Id = Guid.Parse(id), Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn), DueDate = DateTime.Parse(dueDate) }; var todoAsElement = EntityToElement(todo); Container.Add(todoAsElement); var repo = new Xml.TodoRepository(MockXmlContext.Object); //act todo.Title = "Concert"; todo.Description = "Go to Metallica concert"; repo.Update(todo); //assert var all = Container.Elements(); var element = all.First(a => a.Attribute("Id").Value == todo.Id.ToString()); Assert.Equal(todo.Id.ToString(), element.Attribute("Id").Value); Assert.Equal(todo.Title, element.Element("Title").Value); Assert.Equal(todo.Description, element.Element("Description").Value); Assert.Equal(todo.Status.ToString(), element.Element("Status").Value); Assert.Equal(todo.CreatedOn.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("CreatedOn").Value); Assert.Equal(todo.DueDate.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("DueDate").Value); }
public void Save_ReturnsTrue() { var repo = new Xml.TodoRepository(MockXmlContext.Object); var isSaved = repo.Save(); Assert.True(isSaved); }
public void GivenValidID_GetById_ReturnsTodoEntity(string id) { var repo = new Xml.TodoRepository(MockXmlContext.Object); var guid = new Guid(id); var todo = repo.GetById(guid); Assert.NotNull(todo); }
public void Save_CallContextSave() { MockXmlContext.Setup(a => a.Save()); var repo = new Xml.TodoRepository(MockXmlContext.Object); repo.Save(); MockXmlContext.Verify(a => a.Save(), Times.Once); }
public void GivenEmptyId_GetById_ReturnsNull() { //Arange var repo = new Xml.TodoRepository(MockXmlContext.Object); //Act var todo = repo.GetById(Guid.Empty); //Assert Assert.Null(todo); }
public void GivenEmptyRepository_GetAll_ReturnsEmpty() { // Arrange var repo = new Xml.TodoRepository(MockXmlContext.Object); // Act var all = repo.GetAll(); // Assert Assert.Empty(all); }
[InlineData("", "Go to a picnic with friends", TodoStatus.Open, "2020-05-15T14:29:15.1823029Z", "2020-05-19T21:00:00.0000000Z")] // without title public void GivenInvalidTodo_Insert_ThrowsArgumentException(string title, string description, TodoStatus?status, string createdOn, string dueDate) { var repo = new Xml.TodoRepository(MockXmlContext.Object); var model = new TodoModel { Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn), DueDate = DateTime.Parse(dueDate) }; var ex = Assert.Throws <ArgumentException>(() => repo.Insert(model)); Assert.Equal("Empty todo!", ex.Message); }
public void GivenInvalidTodoEntity_Update_ThrowsException(string title, string description, TodoStatus?status, string createdOn, string dueDate) { var repo = new Xml.TodoRepository(MockXmlContext.Object); var todo = new TodoModel() { Title = title, Description = description, Status = status, CreatedOn = DateTime.Parse(createdOn), DueDate = DateTime.Parse(dueDate) }; todo.Title = ""; todo.Description = "Go to Metallica concert"; var ex = Assert.Throws <ArgumentException>(() => repo.Update(todo)); Assert.Equal("Empty todo!", ex.Message); }
public void GetAll_ReturnsAllTodos() { var repo = new Xml.TodoRepository(MockXmlContext.Object); var elements = Container.Elements(); var todos = repo.GetAll(); Assert.Equal(elements.Count(), todos.Count()); foreach (var todo in todos) { var element = elements.First(x => x.Attribute("Id").Value == todo.Id.ToString()); Assert.NotNull(todo); Assert.NotEmpty(todo.Id.ToString()); Assert.Equal(todo.Id.ToString(), element.Attribute("Id").Value); Assert.Equal(todo.Title, element.Element("Title").Value); Assert.Equal(todo.Description, element.Element("Description").Value); Assert.Equal(todo.Status.ToString(), element.Element("Status").Value); Assert.Equal(todo.CreatedOn.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("CreatedOn").Value); Assert.Equal(todo.DueDate.ToUniversalTime().ToString("o", CultureInfo.InvariantCulture), element.Element("DueDate").Value); } }