-
Notifications
You must be signed in to change notification settings - Fork 386
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
73 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,73 @@ | ||
package pluginframework | ||
|
||
import ( | ||
"context" | ||
"testing" | ||
|
||
"github.com/hashicorp/terraform-plugin-go/tfprotov6" | ||
"github.com/hashicorp/terraform-plugin-testing/helper/resource" | ||
"github.com/databricks/databricks-sdk-go/experimental/mocks" | ||
"github.com/databricks/databricks-sdk-go/service/catalog" | ||
"github.com/databricks/terraform-provider-databricks/common" | ||
pluginFrameworkResource "github.com/hashicorp/terraform-plugin-framework/resource" | ||
"github.com/stretchr/testify/assert" | ||
"github.com/stretchr/testify/mock" | ||
) | ||
|
||
func getProtoV6ProviderFactory() map[string]func() (tfprotov6.ProviderServer, error) { | ||
return nil | ||
} | ||
|
||
func TestQualityMonitorCreate(t *testing.T) { | ||
resource.UnitTest(t, resource.TestCase{ | ||
ProtoV6ProviderFactories: getProtoV6ProviderFactory(), | ||
Steps: []resource.TestStep{ | ||
{ | ||
ResourceName: "databricks_quality_monitor_pluginframework", | ||
func TestQualityMonitorCreateTimeseriesPluginFramework(t *testing.T) { | ||
// Setup mock workspace or account client whichever is applicable | ||
// This will be use to mock the databricks-sdk-go calls | ||
MockWorkspaceClientFunc := func(w *mocks.MockWorkspaceClient) { | ||
e := w.GetMockQualityMonitorsAPI().EXPECT() | ||
e.Create(mock.Anything, catalog.CreateMonitor{ | ||
TableName: "test_table", | ||
OutputSchemaName: "output.schema", | ||
AssetsDir: "sample.dir", | ||
TimeSeries: &catalog.MonitorTimeSeries{ | ||
Granularities: []string{"1 day"}, | ||
TimestampCol: "timestamp", | ||
}, | ||
}, | ||
}) | ||
}).Return(&catalog.MonitorInfo{ | ||
AssetsDir: "sample.dir", | ||
OutputSchemaName: "output.schema", | ||
TableName: "test_table", | ||
Status: catalog.MonitorInfoStatusMonitorStatusPending, | ||
DriftMetricsTableName: "test_table_drift", | ||
}, nil) | ||
e.GetByTableName(mock.Anything, "test_table").Return(&catalog.MonitorInfo{ | ||
TableName: "test_table", | ||
Status: catalog.MonitorInfoStatusMonitorStatusActive, | ||
AssetsDir: "sample.dir", | ||
OutputSchemaName: "output.schema", | ||
DriftMetricsTableName: "test_table_drift", | ||
}, nil) | ||
} | ||
_ = MockWorkspaceClientFunc | ||
|
||
// Start the server | ||
// tanmaytodo | ||
|
||
// Create resource using the above mock workspace client | ||
qualityMonitorResource := QualityMonitorResource{ | ||
Client: &common.DatabricksClient{}, | ||
} | ||
|
||
// Create request and response for the respective CRUD operation and pass the config | ||
createRequest := pluginFrameworkResource.CreateRequest{ | ||
Config: GetPluginFrameworkConfig(` | ||
table_name = "test_table", | ||
assets_dir = "sample.dir", | ||
output_schema_name = "output.schema", | ||
time_series = { | ||
granularities = ["1 day"], | ||
timestamp_col = "timestamp" | ||
} | ||
`), | ||
} | ||
createResponse := pluginFrameworkResource.CreateResponse{} | ||
ctx := context.Background() | ||
|
||
// Call the method to unit test | ||
qualityMonitorResource.Create(ctx, createRequest, &createResponse) | ||
|
||
// Add assertions | ||
assert.False(t, createResponse.Diagnostics.HasError()) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package pluginframework | ||
|
||
import ( | ||
"github.com/hashicorp/terraform-plugin-framework/tfsdk" | ||
) | ||
|
||
func GetPluginFrameworkConfig(s string) tfsdk.Config { | ||
return tfsdk.Config{} // tanmaytodo | ||
} |