public Tuple<string, string> UploadAndDownLoadNewBook(string bookName, string id, string uploader, string data, bool isTemplate = false)
{
// Create a book folder with meta.json that includes an uploader and id and some other files.
var originalBookFolder = MakeBook(bookName, id, uploader, data);
if (isTemplate)
{
var metadata = BookMetaData.FromFolder(originalBookFolder);
metadata.IsSuitableForMakingShells = true;
metadata.WriteToFolder(originalBookFolder);
}
int fileCount = Directory.GetFiles(originalBookFolder).Length;
Login();
//HashSet<string> notifications = new HashSet<string>();
var progress = new SIL.Progress.StringBuilderProgress();
var s3Id = _transfer.UploadBook(originalBookFolder,progress);
var uploadMessages = progress.Text.Split(new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);
Assert.That(uploadMessages.Length, Is.EqualTo(fileCount + 2)); // should get one per file, plus one for metadata, plus one for book order
Assert.That(progress.Text, Is.StringContaining(
LocalizationManager.GetString("PublishTab.Upload.UploadingBookMetadata", "Uploading book metadata",
"In this step, Bloom is uploading things like title, languages, & topic tags to the bloomlibrary.org database.")));
Assert.That(progress.Text, Is.StringContaining(Path.GetFileName(Directory.GetFiles(originalBookFolder).First())));
_transfer.WaitUntilS3DataIsOnServer(BloomS3Client.UnitTestBucketName, originalBookFolder);
var dest = _workFolderPath.CombineForPath("output");
Directory.CreateDirectory(dest);
_downloadedBooks.Clear();
var url = BookTransfer.BloomS3UrlPrefix + BloomS3Client.UnitTestBucketName + "/" + s3Id;
var newBookFolder = _transfer.HandleDownloadWithoutProgress(url, dest);
Assert.That(Directory.GetFiles(newBookFolder).Length, Is.EqualTo(fileCount + 1)); // book order is added during upload
Assert.That(_downloadedBooks.Count, Is.EqualTo(1));
Assert.That(_downloadedBooks[0].FolderPath,Is.EqualTo(newBookFolder));
// Todo: verify that metadata was transferred to Parse.com
return new Tuple<string, string>(originalBookFolder, newBookFolder);
}