Exemplo n.º 1
0
        [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);
        }
Exemplo n.º 2
0
        [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);
        }
Exemplo n.º 3
0
        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);
        }