public async Task Create2_2() { var partitionKey = LvConstants.MediaTypeOfAll; const string mediaUri = "media uri"; const TumblrCategory category = TumblrCategory.C1; const string thumbnailUri = "TestThumbnailUri"; var tumblrText = new TumblrText { Text = "TestText", Category = category }; dynamic p1 = new ExpandoObject(); p1.PartitionKey = partitionKey; p1.MediaUri = mediaUri; p1.ThumbnailUri = thumbnailUri; p1.TumblrText = tumblrText; await _fixture.Command.ExecuteAsync(p1); TumblrEntity entity = p1.Entity; Assert.NotNull(entity); Assert.Equal(partitionKey, entity.PartitionKey); Assert.Equal(tumblrText.Category.ToString("D"), entity.RowKey.Substring(0, 1)); Assert.Equal(mediaUri, entity.MediaUri); Assert.Equal(tumblrText.Text, entity.Text); Assert.Equal(partitionKey, entity.MediaType); Assert.Equal(category.ToString("D"), entity.TumblrCategory); List <ITableEntity> ientities = p1.Entities; var entities = ientities.Cast <TumblrEntity>().ToList(); Assert.Equal(2, entities.Count()); var entity0 = entities[0]; var entity1 = entities[1]; Assert.True(new[] { entity0.MediaUri, entity1.MediaUri }.AllEqual()); Assert.True(new[] { entity0.MediaSmallUri, entity1.MediaSmallUri }.AllEqual()); Assert.True(new[] { entity0.MediaUri, entity1.MediaUri }.AllEqual()); Assert.True(new[] { entity0.CreateTime, entity1.CreateTime }.AllEqual()); Assert.True(new[] { entity0.MediaType, entity1.MediaType }.AllEqual()); Assert.True(new[] { entity0.TumblrCategory, entity1.TumblrCategory }.AllEqual()); Assert.True(new[] { _fixture.UriFactory.GetInvertedTicksFromTumblrRowKey(entity0.RowKey), _fixture.UriFactory.GetInvertedTicksFromTumblrRowKey(entity1.RowKey) }.AllEqual()); // Dynamic // PartitionKey Assert.Equal(partitionKey, entity0.PartitionKey); Assert.Equal(partitionKey, entity1.PartitionKey); // RowKey Assert.Equal(category.ToString("D"), entity0.RowKey.Substring(0, 1)); Assert.Equal(TumblrCategory.All.ToString("D"), entity1.RowKey.Substring(0, 1)); }
public override bool CanExecute(dynamic p) { _partitionKey = p.PartitionKey; _mediaUri = p.MediaUri; _mediaLargeUri = p.MediaLargeUri; _mediaMediumUri = p.MediaMediumUri; _mediaSmallUri = p.MediaSmallUri; _tumblrText = p.TumblrText; return (new[] { _partitionKey, _mediaUri, _mediaLargeUri, _mediaMediumUri, _mediaSmallUri }.AllNotNullOrEmpty() && _tumblrText != null); }
public void CopyByJson_Return_True_WhenCopy() { var t = new TumblrText { Text = "Hello World!", Category = TumblrCategory.C1 }; var p = t.CloneByJson(); Assert.NotSame(t, p); Assert.Equal(t.Text, p.Text); Assert.Equal(t.Category, p.Category); }
public async Task CreateFavorite_Return_EquivalentOfTumblrEntity() { var partitionKey = LvConstants.MediaTypeOfAll; const string mediaUri = "TestMediaUri"; const string thumbnailUri = "TestThumbnailUri"; var tumblrText = new TumblrText { Text = "TestText", Category = TumblrCategory.C1 }; dynamic p1 = new ExpandoObject(); p1.PartitionKey = partitionKey; p1.MediaUri = mediaUri; p1.ThumbnailUri = thumbnailUri; p1.TumblrText = tumblrText; await _fixture.CreateTumblrCommand.ExecuteAsync(p1); TumblrEntity tumblr = p1.Entity; const string userId = "userid"; dynamic p2 = tumblr.ToExpandoObject(); p2.RowKey = _fixture.UriFactory.GetInvertedTicksFromTumblrRowKey(tumblr.RowKey); p2.UserId = userId; await _fixture.CreateFavoriteCommand.ExecuteAsync(p2); FavoriteEntity favorite = p2.Entity; Assert.Equal(favorite.PartitionKey, userId); Assert.Equal(favorite.RowKey, _fixture.UriFactory.CreateFavoriteRowKey(partitionKey, _fixture.UriFactory.GetInvertedTicksFromTumblrRowKey(tumblr.RowKey))); Assert.Equal(favorite.MediaUri, tumblr.MediaUri); Assert.Equal(favorite.MediaSmallUri, tumblr.MediaSmallUri); Assert.Equal(favorite.Text, tumblr.Text); Assert.Equal(favorite.CreateTime, tumblr.CreateTime); Assert.Equal(favorite.MediaType, tumblr.MediaType); Assert.Equal(favorite.TumblrCategory, tumblr.TumblrCategory); List <ITableEntity> ientities = p2.Entities; var entities = ientities.Cast <FavoriteEntity>().ToList(); Assert.Equal(1, entities.Count()); }
public ITableEntity CreateTumblrEntity(dynamic p) { string partitionKey = p.PartitionKey; string mediaUri = p.MediaUri; string mediaLargeUri = p.MediaLargeUri; string mediaMediumUri = p.MediaMediumUri; string mediaSmallUri = p.MediaSmallUri; TumblrText tumblrText = p.TumblrText; var now = GetUtcNow(); var invertedTicks = DateTimeHelper.GetInvertedTicks(now); return(new TumblrEntity(partitionKey, _uriFactory.CreateTumblrRowKey(tumblrText.Category, invertedTicks)) { MediaType = partitionKey, MediaUri = mediaUri, MediaLargeUri = mediaLargeUri, MediaMediumUri = mediaMediumUri, MediaSmallUri = mediaSmallUri, Text = tumblrText.Text, TumblrCategory = tumblrText.Category.ToString("D"), CreateTime = now }); }