[Test]
public void Should_Import_BantamToDo_FromJson()
{
var jsonToDo = ArrangeTaskAsJson();
var bantamToDo = JsonConvert.DeserializeObject<BantamTodo>(jsonToDo);
bantamToDo.Categoy.Should().Be.EqualTo("Organisation");
bantamToDo.Complete.Should().Be.EqualTo(true);
bantamToDo.Created_At.Should().Be.EqualTo(new DateTime(2011, 6, 30, 0, 41, 57));
bantamToDo.Due.Should().Be.EqualTo(new DateTime(2011, 7, 1));
bantamToDo.Author.Name.Should().Be.EqualTo("Anton");
bantamToDo.Assigned_To.Name.Should().Be.EqualTo("Oliver");
bantamToDo.Related_To[0].Name.Should().Be.EqualTo("ToDo-Management Tool");
bantamToDo.Name.Should().Be.EqualTo("Entwicklung nach Gebieten Personen zuordnen - Verantwortliche, Blogs, etc.");
bantamToDo.Description.Should().Be.EqualTo("some good description");
bantamToDo.Flagged.Should().Be.EqualTo(true);
}
[Test]
public void Should_Convert_BantamToDo_ToTodo()
{
var jsonToDo = ArrangeTaskAsJson();
var bantamToDo = JsonConvert.DeserializeObject<BantamTodo>(jsonToDo);
var todo = bantamToDo.ConvertToTodo();
todo.Status.Should().Be.EqualTo(bantamToDo.Complete ? Status.Closed : Status.Open);
todo.Description.Should().Contain(bantamToDo.Name);
todo.Description.Should().Contain(bantamToDo.Description);
todo.Tags.Select(t => t.Name).Should().Contain(bantamToDo.Categoy);
foreach (var bantamProject in bantamToDo.Related_To)
todo.Tags.Select(t => t.Name).Should().Contain(bantamProject.Name);
todo.DateCreated.Should().Be.EqualTo(bantamToDo.Created_At);
todo.DateCompleted.Value.Date.Should().Be.EqualTo(bantamToDo.Due);
todo.DateDue.Should().Be.EqualTo(bantamToDo.Due);
todo.Creator.Name.Should().Be.EqualTo(bantamToDo.Author.Name);
todo.Assignee.Name.Should().Be.EqualTo(bantamToDo.Assigned_To.Name);
todo.Priority.Value.Should().Be.EqualTo(bantamToDo.Flagged ? 2 : 0);
}