public void CallingUsingAsOnlyToExpressionInPostgres(bool?isOnly) { var collectionMock = new Mock <PostgresIndexOnlyDefinition>(); var additionalFeatures = new Dictionary <string, object>() { [PostgresExtensions.Only] = collectionMock.Object }; var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); if (isOnly == null) { builder.WithOptions().AsOnly(); } else { builder.WithOptions().AsOnly(isOnly.Value); } collectionMock.VerifySet(x => x.IsOnly = isOnly ?? true); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); }
public void CallingUsingIndexAlgorithmToExpressionInPostgres(Algorithm algorithm) { var collectionMock = new Mock <PostgresIndexAlgorithmDefinition>(); var additionalFeatures = new Dictionary <string, object>() { [PostgresExtensions.IndexAlgorithm] = collectionMock.Object }; var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); switch (algorithm) { case Algorithm.BTree: builder.WithOptions().UsingBTree(); break; case Algorithm.Hash: builder.WithOptions().UsingHash(); break; case Algorithm.Gist: builder.WithOptions().UsingGist(); break; case Algorithm.Spgist: builder.WithOptions().UsingSpgist(); break; case Algorithm.Gin: builder.WithOptions().UsingGin(); break; case Algorithm.Brin: builder.WithOptions().UsingBrin(); break; default: throw new ArgumentOutOfRangeException(nameof(algorithm), algorithm, null); } collectionMock.VerifySet(x => x.Algorithm = algorithm); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); }
public void CallingWithAutosummarizeInPostgres(bool autosummarize) { var additionalFeatures = new Dictionary <string, object>(); var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); builder.WithOptions().UsingBrin().Autosummarize(autosummarize); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); Assert.AreEqual(autosummarize, additionalFeatures[PostgresExtensions.IndexAutosummarize]); }
public void CallingWithGinPendingListLimitInPostgres() { var additionalFeatures = new Dictionary <string, object>(); var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); builder.WithOptions().UsingGin().PendingListLimit(90); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); Assert.AreEqual(90, additionalFeatures[PostgresExtensions.IndexGinPendingListLimit]); }
public void CallingWithVacuumCleanupIndexScaleFactorInPostgres() { var additionalFeatures = new Dictionary <string, object>(); var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); builder.WithOptions().UsingBTree().VacuumCleanupIndexScaleFactor(90); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); Assert.AreEqual(90, additionalFeatures[PostgresExtensions.IndexVacuumCleanupIndexScaleFactor]); }
public void CallingTablespaceExpressingInPostgres() { var additionalFeatures = new Dictionary <string, object>() { [PostgresExtensions.IndexTablespace] = "" }; var indexMock = new Mock <IndexDefinition>(); indexMock.Setup(x => x.AdditionalFeatures).Returns(additionalFeatures); var expressionMock = new Mock <CreateIndexExpression>(); expressionMock.SetupGet(e => e.Index).Returns(indexMock.Object); ICreateIndexOnColumnOrInSchemaSyntax builder = new CreateIndexExpressionBuilder(expressionMock.Object); builder.WithOptions().Tablespace("indexspace"); indexMock.VerifyGet(x => x.AdditionalFeatures); expressionMock.VerifyGet(e => e.Index); Assert.AreEqual("indexspace", additionalFeatures[PostgresExtensions.IndexTablespace]); }