Albirew/nyaa-pantsu
Albirew
/
nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/utils/search/categories_test.go

183 lignes
4.5 KiB
Go

package search
import (
"path"
"testing"
"github.com/NyaaPantsu/nyaa/config"
"github.com/NyaaPantsu/nyaa/utils/categories"
"github.com/stretchr/testify/assert"
)
// run before config/parse.go:init()
var _ = func() (_ struct{}) {
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
config.Reload()
categories.InitCategories()
return
}()
func TestParseCategories(t *testing.T) {
assert := assert.New(t)
cat := ParseCategories("")
assert.Empty(cat, "ParseCategories with empty arg doesn't return an empty array")
cat = ParseCategories("5050")
assert.Empty(cat, "ParseCategories with wrong arg doesn't return an empty array")
cat = ParseCategories("50_50")
assert.Empty(cat, "ParseCategories with wrong arg doesn't return an empty array")
cat = ParseCategories("3_13")
catEqual := []*Category{
&Category{
Main: 3,
Sub: 13,
},
}
assert.Equal(catEqual, cat, "ParseCategories with good arg doesn't return the right array")
cat = ParseCategories("_")
assert.Empty(cat, "Should be empty")
cat = ParseCategories("3_13,3_5")
catEqual = []*Category{
&Category{
Main: 3,
Sub: 13,
},
&Category{
Main: 3,
Sub: 5,
},
}
assert.Equal(catEqual, cat, "ParseCategories with good arg doesn't return the right array")
cat = ParseCategories("3_13,3_5,5_50")
assert.Equal(catEqual, cat, "ParseCategories with good arg doesn't filter the wrong categories")
}
func TestCategory_IsSet(t *testing.T) {
cat := Category{
Main: 3,
Sub: 13,
}
assert := assert.New(t)
assert.Equal(true, cat.IsSet(), "Should be equal to true")
cat.Main = 0
assert.Equal(false, cat.IsSet(), "Should be equal to false")
cat.Sub = 0
assert.Equal(false, cat.IsSet(), "Should be equal to false")
}
func TestCategory_IsSubSet(t *testing.T) {
cat := Category{
Main: 3,
Sub: 13,
}
assert := assert.New(t)
assert.Equal(true, cat.IsSubSet(), "Should be equal to true")
cat.Main = 0
assert.Equal(true, cat.IsSubSet(), "Should be equal to true")
cat.Sub = 0
assert.Equal(false, cat.IsSubSet(), "Should be equal to false")
}
func TestCategory_IsMainSet(t *testing.T) {
cat := Category{
Main: 3,
Sub: 13,
}
assert := assert.New(t)
assert.Equal(true, cat.IsMainSet(), "Should be equal to true")
cat.Main = 0
assert.Equal(false, cat.IsMainSet(), "Should be equal to false")
cat.Sub = 0
assert.Equal(false, cat.IsMainSet(), "Should be equal to false")
}
func TestCategory_String(t *testing.T) {
cat := Category{
Main: 3,
Sub: 13,
}
assert := assert.New(t)
assert.Equal("3_13", cat.String(), "Should be equal to '3_13'")
cat.Sub = 0
assert.Equal("3_", cat.String(), "Should be equal to '3_'")
cat.Main = 0
assert.Equal("_", cat.String(), "Should be equal to '_'")
}
func TestCategories_ToDBQuery(t *testing.T) {
cat := Categories{&Category{
Main: 3,
Sub: 13,
},
&Category{
Main: 3,
Sub: 5,
},
}
assert := assert.New(t)
search, args := cat.ToDBQuery()
assert.Equal("(category = ? AND sub_category = ?) OR (category = ? AND sub_category = ?)", search, "Should be equal")
assert.Equal([]interface{}{uint8(3), uint8(13), uint8(3), uint8(5)}, args, "Should be equal")
cat = Categories{&Category{
Main: 3,
Sub: 13,
},
}
search, args = cat.ToDBQuery()
assert.Equal("category = ? AND sub_category = ?", search, "Should be equal to 'category = ? AND sub_category = ?'")
assert.Equal([]interface{}{uint8(3), uint8(13)}, args, "Should be equal to '3_13'")
cat = Categories{&Category{
Main: 3,
Sub: 0,
},
}
search, args = cat.ToDBQuery()
assert.Equal("category = ?", search, "Should be equal to 'category = ?'")
assert.Equal([]interface{}{uint8(3)}, args, "Should be equal to '3'")
cat = Categories{&Category{
Main: 0,
Sub: 0,
},
}
search, args = cat.ToDBQuery()
assert.Empty(search, "Should be empty")
assert.Empty(args, "Should be empty")
}
func TestCategories_ToESQuery(t *testing.T) {
cat := Categories{&Category{
Main: 3,
Sub: 13,
},
&Category{
Main: 3,
Sub: 5,
},
}
assert := assert.New(t)
assert.Equal("((category: 3 AND sub_category: 13) OR (category: 3 AND sub_category: 5))", cat.ToESQuery(), "Should be equal")
cat = Categories{&Category{
Main: 3,
Sub: 13,
},
}
assert.Equal("(category: 3 AND sub_category: 13)", cat.ToESQuery(), "Should be equal")
cat = Categories{&Category{
Main: 3,
Sub: 0,
},
}
assert.Equal("(category: 3)", cat.ToESQuery(), "Should be equal")
cat = Categories{&Category{
Main: 0,
Sub: 0,
},
}
assert.Equal("", cat.ToESQuery(), "Should be empty")
}