Skip to content

Commit

Permalink
add functional test for setValues and getValues
Browse files Browse the repository at this point in the history
  • Loading branch information
Yingjian Wu committed Mar 8, 2024
1 parent 6d7bfca commit 9ece2c5
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 1 deletion.
1 change: 1 addition & 0 deletions metacat-functional-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ dependencies {
testImplementation(project(":metacat-common-server"))
testImplementation(project(":metacat-connector-hive"))
testImplementation(project(":metacat-testdata-provider"))
testImplementation project(path: ':metacat-metadata-mysql')

functionalTestImplementation(project(":metacat-client"))
functionalTestImplementation("org.apache.hadoop:hadoop-core")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ services:
- MYSQL_PASSWORD=metacat_user_password
- MYSQL_DATABASE=metacat
ports:
- '3306'
- '3306:3306'
labels:
- "com.netflix.metacat.oss.test"
postgresql:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Copyright 2016 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.netflix.metacat

import com.netflix.metacat.common.server.properties.DefaultConfigImpl
import com.netflix.metacat.common.server.properties.MetacatProperties
import com.netflix.metacat.metadata.mysql.MySqlLookupService
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.jdbc.datasource.DriverManagerDataSource
import spock.lang.Shared
import spock.lang.Specification

class MySqlLookupServiceUnitTest extends Specification{
private MySqlLookupService mySqlLookupService;
private JdbcTemplate jdbcTemplate;

@Shared
MySqlLookupService mySqlLookupService

@Shared
JdbcTemplate jdbcTemplate

def setupSpec() {
String jdbcUrl = "jdbc:mysql://localhost:3306/metacat"
String username = "metacat_user"
String password = "metacat_user_password"

DriverManagerDataSource dataSource = new DriverManagerDataSource()
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver")
dataSource.setUrl(jdbcUrl)
dataSource.setUsername(username)
dataSource.setPassword(password)

jdbcTemplate = new JdbcTemplate(dataSource)
mySqlLookupService = new MySqlLookupService(new DefaultConfigImpl(new MetacatProperties()), jdbcTemplate)
}

def "test setValues iterative"() {
setup:
def values = valuesList as Set<String>
def lookup = mySqlLookupService.setValues("mock", values)

expect:
lookup.values.size() == expectedSize
lookup.values == mySqlLookupService.getValues("mock")

where:
valuesList | expectedSize
["1", "2", "3"] | 3
["1", "2", "3", "4"] | 4
["1", "2", "3", "3", "4"] | 4
["3", "4"] | 2
["6"] | 1
["1", "6"] | 2
}

def "test setValues for different id"(){
when:
def mock1LookUp = mySqlLookupService.setValues("mock1", ["1", "2", "3"] as Set<String>)
def mock2LookUp = mySqlLookupService.setValues("mock2", ["4", "5", "6"] as Set<String>)
then:
mock1LookUp.values == ["1", "2", "3"] as Set<String>
mock1LookUp.values == mySqlLookupService.getValues("mock1")
mock2LookUp.values == ["4", "5", "6"] as Set<String>
mock2LookUp.values == mySqlLookupService.getValues("mock2")
}
}

0 comments on commit 9ece2c5

Please sign in to comment.