public void GetBookRecord_BookIsThere_Succeeds() { //first make a book so that we know it is there var id = CreateBookRecord(); var bookjson = _client.GetSingleBookRecord(id); Assert.AreEqual(id, bookjson.bookInstanceId.Value); // Partial matches are no good Assert.IsNull(_client.GetSingleBookRecord(new Guid().ToString())); // Our lookup uses the logged in user as part of the query. // Ensure the lookup fails if not logged in as the uploader. _client.Logout(); Assert.IsNull(_client.GetSingleBookRecord(id)); }
public void UploadBook_SetsInterestingParseFieldsCorrectly() { Login(); var bookFolder = MakeBook(MethodBase.GetCurrentMethod().Name, "myId", "me", "something"); _uploader.UploadBook(bookFolder, new NullProgress()); var bookInstanceId = "myId" + _thisTestId; var bookRecord = _parseClient.GetSingleBookRecord(bookInstanceId); // Verify new upload Assert.That(bookRecord.harvestState.Value, Is.EqualTo("New")); Assert.That(bookRecord.tags[0].Value, Is.EqualTo("system:Incoming"), "New books should always get the system:Incoming tag."); Assert.That(bookRecord.updateSource.Value.StartsWith("BloomDesktop "), Is.True, "updateSource should start with BloomDesktop when uploaded"); Assert.That(bookRecord.updateSource.Value, Is.Not.EqualTo("BloomDesktop old"), "updateSource should not equal 'BloomDesktop old' when uploaded from current Bloom"); DateTime lastUploadedDateTime = bookRecord.lastUploaded.iso.Value; var differenceBetweenNowAndCreationOfJson = DateTime.UtcNow - lastUploadedDateTime; Assert.That(differenceBetweenNowAndCreationOfJson, Is.GreaterThan(TimeSpan.FromSeconds(0)), "lastUploaded should be a valid date representing now-ish"); Assert.That(differenceBetweenNowAndCreationOfJson, Is.LessThan(TimeSpan.FromSeconds(5)), "lastUploaded should be a valid date representing now-ish"); // Set up for re-upload _parseClient.SetBookRecord(JsonConvert.SerializeObject( new { bookInstanceId, updateSource = "not Bloom", tags = new string[0], lastUploaded = (ParseServerDate)null, harvestState = "Done" })); bookRecord = _parseClient.GetSingleBookRecord(bookInstanceId); Assert.That(bookRecord.harvestState.Value, Is.EqualTo("Done")); Assert.That(bookRecord.tags, Is.Empty); Assert.That(bookRecord.updateSource.Value, Is.EqualTo("not Bloom")); Assert.That(bookRecord.lastUploaded.Value, Is.Null); _uploader.UploadBook(bookFolder, new NullProgress()); bookRecord = _parseClient.GetSingleBookRecord(bookInstanceId); // Verify re-upload Assert.That(bookRecord.harvestState.Value, Is.EqualTo("Updated")); Assert.That(bookRecord.tags[0].Value, Is.EqualTo("system:Incoming"), "Re-uploaded books should always get the system:Incoming tag."); Assert.That(bookRecord.updateSource.Value.StartsWith("BloomDesktop "), Is.True, "updateSource should start with BloomDesktop when re-uploaded"); Assert.That(bookRecord.updateSource.Value, Is.Not.EqualTo("BloomDesktop old"), "updateSource should not equal 'BloomDesktop old' when uploaded from current Bloom"); lastUploadedDateTime = bookRecord.lastUploaded.iso.Value; differenceBetweenNowAndCreationOfJson = DateTime.UtcNow - lastUploadedDateTime; Assert.That(differenceBetweenNowAndCreationOfJson, Is.GreaterThan(TimeSpan.FromSeconds(0)), "lastUploaded should be a valid date representing now-ish"); Assert.That(differenceBetweenNowAndCreationOfJson, Is.LessThan(TimeSpan.FromSeconds(5)), "lastUploaded should be a valid date representing now-ish"); _parseClient.DeleteBookRecord(bookRecord.objectId.Value); }