public void ExportTest() { //Export backup //This API will return the content of a specified backup id the CSV format specified below. //Request: GET / exports /{ // backup id} // Request body: N / A //Response body: // ``` // Username;TodoItemId;Subject;DueDate;Done // {username};{todoitemid};{subject};{duedate};{done} // ``` // Arrange BackupStatus backupStatus = BackupStatus.InProgress; var items = new List <TodoItem>(); var date = DateTime.Now; Random random = new Random(); for (int i = 0; i < 2; i++) { date = date.AddDays(i); for (int j = 0; j < 5; j++) { date = date.AddHours(j); var done = random.Next(0, int.MaxValue); items.Add(new TodoItem(i + j, "Sean Williams", string.Format("Subject {0}", i + j), date, Convert.ToBoolean(done))); } } IBackupService backupService = new StubIBackupService() { InitiateAsync = () => { // Generate a random id var generator = new Random(); var id = 0; lock (generator) { id = random.Next(1, int.MaxValue); } return(Task.FromResult(id)); }, GetAll = () => { var rtnVal = new List <Backup.Backup>(); date = DateTime.Now; for (int i = 0; i < 7; i++) { date = date.AddDays(i); for (int j = 0; j < 24; j++) { date = date.AddHours(j); rtnVal.Add(new Backup.Backup(i + j, date, backupStatus, items)); } } return(rtnVal); } }; BackupsController target = new BackupsController(backupService) { Request = new HttpRequestMessage() { Method = HttpMethod.Get, Properties = { { HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration() } } } }; // Act int backupId = 1; var actual = target.Export(backupId) as ResponseMessageResult; // Assert Assert.IsNotNull(actual); Assert.IsTrue(actual.Response.IsSuccessStatusCode); Assert.IsTrue(0 < actual.Response.Content.Headers.ContentLength); }