示例#1
0
    public void Returns_Valid_Query()
    {
        // Arrange
        var prefix            = Rnd.Str;
        var schema            = new WpDbSchema(prefix);
        var i0                = Rnd.ULng;
        var i1                = Rnd.ULng;
        var fileIds           = ImmutableList.Create <WpPostId>(new() { Value = i0 }, new() { Value = i1 });
        var virtualUploadsUrl = Rnd.Str;
        var expected          =
            "SELECT " +
            "`p`.`ID` AS 'Id', " +
            "`p`.`post_title` AS 'Title', " +
            "`p`.`post_excerpt` AS 'Description', " +
            "`p`.`guid` AS 'Url', " +
            "`pm`.`meta_value` AS 'UrlPath', " +
            $"CONCAT('{virtualUploadsUrl}/', `pm`.`meta_value`) AS 'Url' " +
            $"FROM `{schema.Posts}` AS `p` " +
            $"LEFT JOIN `{schema.PostsMeta}` AS `pm` ON `p`.`ID` = `pm`.`post_id` " +
            $"WHERE `p`.`ID` IN ({i0},{i1}) " +
            "AND `pm`.`meta_key` = '_wp_attached_file';"
        ;

        // Act
        var result = QueryAttachmentsF.GetQuery(schema, fileIds, virtualUploadsUrl);

        // Assert
        var some = result.AssertSome();

        Assert.Equal(expected, some);
    }
示例#2
0
    protected override (PostsTaxonomyOptions options, IQueryPostsTaxonomyPartsBuilder builder) Setup()
    {
        var schema  = new WpDbSchema(Rnd.Str);
        var builder = GetConfiguredBuilder(schema.Terms);
        var options = new PostsTaxonomyOptions(schema, builder);

        return(options, builder);
    }
示例#3
0
    public static IEnumerable <object[]> Adds_SearchPostField_Data()
    {
        var post = new WpDbSchema(Rnd.Str).Posts;

        yield return(new object[] { SearchPostField.Title, post.Title });

        yield return(new object[] { SearchPostField.Slug, post.Slug });

        yield return(new object[] { SearchPostField.Content, post.Content });

        yield return(new object[] { SearchPostField.Excerpt, post.Excerpt });
    }
示例#4
0
    public static (IWpDb, IUnitOfWork, Vars) Setup()
    {
        var schema = new WpDbSchema(Rnd.Str);

        var uploadsPath = Rnd.Str;
        var config      = new WpConfig {
            UploadsPath = uploadsPath
        };

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

        db.Schema.Returns(schema);
        db.WpConfig.Returns(config);

        var transaction = Substitute.For <IDbTransaction>();

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

        unitOfWork.Transaction.Returns(transaction);

        return(db, unitOfWork, new(schema, config, uploadsPath, transaction));
    }
示例#5
0
    public void Creates_Tables_With_TablePrefix()
    {
        // Arrange
        var prefix = Rnd.Str;

        // Act
        var result = new WpDbSchema(prefix);

        // Assert
        Assert.StartsWith(prefix, result.Comments.ToString());
        Assert.StartsWith(prefix, result.CommentsMeta.ToString());
        Assert.StartsWith(prefix, result.Links.ToString());
        Assert.StartsWith(prefix, result.Options.ToString());
        Assert.StartsWith(prefix, result.Posts.ToString());
        Assert.StartsWith(prefix, result.PostsMeta.ToString());
        Assert.StartsWith(prefix, result.Terms.ToString());
        Assert.StartsWith(prefix, result.TermsMeta.ToString());
        Assert.StartsWith(prefix, result.TermRelationships.ToString());
        Assert.StartsWith(prefix, result.TermTaxonomies.ToString());
        Assert.StartsWith(prefix, result.Users.ToString());
        Assert.StartsWith(prefix, result.UsersMeta.ToString());
    }