예제 #1
0
    public async Task Meta_Contains_Key_Multiple_Terms_Found_Returns_None_With_MultipleTermsFoundMsg()
    {
        // Arrange
        var a0          = new Attachment();
        var a1          = new Attachment();
        var attachments = new[] { a0, a1 };

        var db         = Substitute.For <IWpDb>();
        var unitOfWork = Substitute.For <IUnitOfWork>();

        var key   = Rnd.Str;
        var value = Rnd.Lng;
        var meta  = new MetaDictionary {
            { key, value.ToString() }
        };

        var queryPosts = Substitute.For <IQueryPosts>();

        queryPosts.ExecuteAsync <Attachment>(db, unitOfWork, Arg.Any <GetPostsOptions>()).Returns(attachments);

        var field = new TestCustomField(queryPosts, key);

        // Act
        var result = await field.HydrateAsync(db, unitOfWork, meta, true);

        // Assert
        var none = result.AssertNone().AssertType <MultipleAttachmentsFoundMsg>();

        Assert.Equal(value.ToString(), none.Value);
    }
예제 #2
0
    public async Task Meta_Contains_Key_Single_Item_Found_Sets_ValueObj_Returns_True()
    {
        // Arrange
        var attachment  = new Attachment();
        var attachments = new[] { attachment };

        var db         = Substitute.For <IWpDb>();
        var unitOfWork = Substitute.For <IUnitOfWork>();

        var key  = Rnd.Str;
        var meta = new MetaDictionary {
            { key, Rnd.Lng.ToString() }
        };

        var queryPosts = Substitute.For <IQueryPosts>();

        queryPosts.ExecuteAsync <Attachment>(db, unitOfWork, Arg.Any <GetPostsOptions>()).Returns(attachments);

        var field = new TestCustomField(queryPosts, key);

        // Act
        var result = await field.HydrateAsync(db, unitOfWork, meta, true);

        // Assert
        result.AssertTrue();
        Assert.Same(attachment, field.ValueObj);
    }
예제 #3
0
    public async Task Meta_Contains_Key_Single_Item_Found_Sets_ValueObj_Properties_Returns_True()
    {
        // Arrange
        var attachment = new Attachment();
        var urlPath    = Rnd.Str;

        attachment.Meta.Add(Constants.Attachment, urlPath);
        var info = Rnd.Str;

        attachment.Meta.Add(Constants.AttachmentMetadata, "s:6:\"" + info + "\";");
        var attachments = new[] { attachment };

        var db         = Substitute.For <IWpDb>();
        var unitOfWork = Substitute.For <IUnitOfWork>();

        var key  = Rnd.Str;
        var meta = new MetaDictionary {
            { key, Rnd.Lng.ToString() }
        };

        var queryPosts = Substitute.For <IQueryPosts>();

        queryPosts.ExecuteAsync <Attachment>(db, unitOfWork, Arg.Any <GetPostsOptions>()).Returns(attachments);

        var field = new TestCustomField(queryPosts, key);

        // Act
        var result = await field.HydrateAsync(db, unitOfWork, meta, true);

        // Assert
        result.AssertTrue();
        Assert.Equal(urlPath, field.ValueObj.UrlPath);
        Assert.Contains(info, field.ValueObj.Info);
    }