class SearchQueryParamValidatorTest(unittest.TestCase):
    """
    Test how SearchQuery validates query params
    """
    
    def setUp(self):
        self.search_query = SearchQuery()
    
    # False cases
    def test_none(self):
        self.assertFalse(
            self.search_query._is_value_not_empty(None)
        )
        
    def test_empty_string(self):
        self.assertFalse(
            self.search_query._is_value_not_empty("")
        )
        
    def test_empty_list(self):
        self.assertFalse(
            self.search_query._is_value_not_empty([])
        )
        
    # True / valid cases
    def test_boolean_false(self):
        self.assertTrue(
            self.search_query._is_value_not_empty(False)
        )
        
    def test_boolean_true(self):
        self.assertTrue(
            self.search_query._is_value_not_empty(True)
        )
        
    def test_string(self):
        self.assertTrue(
            self.search_query._is_value_not_empty("value")
        )
        
    def test_list(self):
        self.assertTrue(
            self.search_query._is_value_not_empty(["value"])
        )
        
    def test_list_with_empty_item(self):
        self.assertTrue(
            self.search_query._is_value_not_empty([""])
        )
        
    def test_list_with_none_item(self):
        self.assertTrue(
            self.search_query._is_value_not_empty([None])
        )