コード例 #1
0
ファイル: WhenContextHasData.cs プロジェクト: Redsart/TodoApp
        [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);
        }
コード例 #2
0
ファイル: WhenContextHasData.cs プロジェクト: Redsart/TodoApp
        [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);
        }
コード例 #3
0
ファイル: WhenContextHasData.cs プロジェクト: Redsart/TodoApp
        [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);
        }