Skip to content
This repository has been archived by the owner on Sep 7, 2024. It is now read-only.

Commit

Permalink
style: using results properly (#87)
Browse files Browse the repository at this point in the history
  • Loading branch information
kehiy authored Dec 13, 2023
1 parent 69721da commit b8bae62
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 50 deletions.
64 changes: 32 additions & 32 deletions core/database/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,57 +33,57 @@ func (db *Database) Connect(args []string) string {
defer db.lk.RUnlock()

if len(args) != 2 {
return "INVALID"
return INVALID
}

for _, u := range db.Config.Users {
if u.Name == args[0] {
if u.Password == args[1] {
return "DONE"
return DONE
}
}
}

return "INVALID"
return INVALID
}

func (db *Database) AddSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 1 {
return "INVALID"
return INVALID
}

db.Sets[args[0]] = make(Set) // args[0] is set name. see: TQL docs.

return "DONE"
return DONE
}

func (db *Database) AddSubSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 2 {
return "INVALID"
return INVALID
}

s, ok := db.Sets[args[0]] // set name args[0]
if !ok {
return "SNF"
return SET_NOT_FOUND
}

s[args[1]] = make(SubSet, 0) // subset name args[1]

return "DONE"
return DONE
}

func (db *Database) PushElement(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 4 {
return "INVALID"
return INVALID
}

setName := args[0]
Expand All @@ -93,61 +93,61 @@ func (db *Database) PushElement(args []string) string {

_, ok := db.Sets[setName][subSetName]
if !ok {
return "SSNF"
return SUB_SET_NOT_FOUND
}

timestamp, err := strconv.ParseInt(timeStr, 10, 64)
if err != nil {
return "INVALID"
return INVALID
}

t := time.Unix(timestamp, 0)
e := NewElement(elementValue, t)

db.Sets[setName][subSetName] = append(db.Sets[setName][subSetName], e)

return "DONE"
return DONE
}

func (db *Database) DropSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 1 {
return "INVALID"
return INVALID
}

setName := args[0]
_, ok := db.Sets[setName]

if !ok {
return "SNF"
return SET_NOT_FOUND
}

delete(db.Sets, setName)

return "DONE"
return DONE
}

func (db *Database) DropSubSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 2 {
return "INVALID"
return INVALID
}

setName := args[0]
subSetName := args[1]

_, ok := db.Sets[setName][subSetName]
if !ok {
return "SSNF"
return SUB_SET_NOT_FOUND
}

delete(db.Sets[setName], subSetName)

return "DONE"
return DONE
}

func (db *Database) CleanSets(_ []string) string {
Expand All @@ -156,48 +156,48 @@ func (db *Database) CleanSets(_ []string) string {

db.Sets = make(Sets)

return "DONE"
return DONE
}

func (db *Database) CleanSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 1 {
return "INVALID"
return INVALID
}

setName := args[0]

_, ok := db.Sets[setName]
if !ok {
return "SNF"
return SET_NOT_FOUND
}

db.Sets[setName] = make(Set)

return "DONE"
return DONE
}

func (db *Database) CleanSubSet(args []string) string {
db.lk.Lock()
defer db.lk.Unlock()

if len(args) != 2 {
return "INVALID"
return INVALID
}

setName := args[0]
subSetName := args[1]

_, ok := db.Sets[setName][subSetName]
if !ok {
return "SSNF"
return SUB_SET_NOT_FOUND
}

db.Sets[setName][subSetName] = make(SubSet, 0)

return "DONE"
return DONE
}

func (db *Database) CountSets(_ []string) string {
Expand All @@ -217,12 +217,12 @@ func (db *Database) CountSubSets(args []string) string {
defer db.lk.RUnlock()

if len(args) != 1 {
return "INVALID"
return INVALID
}

set, ok := db.Sets[args[0]]
if !ok {
return "SNF"
return SET_NOT_FOUND
}

i := 0
Expand All @@ -238,12 +238,12 @@ func (db *Database) CountElements(args []string) string {
defer db.lk.RUnlock()

if len(args) != 2 {
return "INVALID"
return INVALID
}

subSet, ok := db.Sets[args[0]][args[1]]
if !ok {
return "SSNF"
return SUB_SET_NOT_FOUND
}

i := 0
Expand All @@ -259,18 +259,18 @@ func (db *Database) GetElements(args []string) string {
defer db.lk.RUnlock()

if len(args) < 2 {
return "INVALID"
return INVALID
}

subSet, ok := db.Sets[args[0]][args[1]]
if !ok {
return "SSNF"
return SUB_SET_NOT_FOUND
}

if len(args) == 3 {
n, err := strconv.Atoi(args[2])
if err != nil || len(subSet) < n {
return "INVALID"
return INVALID
}

lastN := subSet[len(subSet)-n:]
Expand Down
36 changes: 18 additions & 18 deletions core/database/database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@ func TestDataBase(t *testing.T) {
result := db.AddSet([]string{"testSet"})

assert.Equal(t, 1, len(db.SetsMap()))
assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
})

t.Run("AddSubSetTest", func(t *testing.T) {
db.AddSet([]string{"testSet"})
result := db.AddSubSet([]string{"testSet", "testSubSet"})

assert.Equal(t, 0, len(db.SetsMap()["testSet"]["testSubSet"]))
assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)

result = db.AddSubSet([]string{"testInvalidSet", "testSubSet"})

assert.Equal(t, "SNF", result)
assert.Equal(t, SET_NOT_FOUND, result)
})

t.Run("pushElementTest", func(t *testing.T) {
Expand All @@ -40,7 +40,7 @@ func TestDataBase(t *testing.T) {
timeStr := fmt.Sprintf("%d", time.Now().Unix())
result := db.PushElement([]string{"testSet", "testSubSet", "testValue", timeStr})

assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
assert.Equal(t, 1, len(db.SetsMap()["testSet"]["testSubSet"]))
assert.Equal(t, "testValue", db.SetsMap()["testSet"]["testSubSet"][0].value)

Expand All @@ -49,7 +49,7 @@ func TestDataBase(t *testing.T) {

result = db.PushElement([]string{"invalidTestSet", "invalidTestSubSet", "testValue", timeStr})

assert.Equal(t, "SSNF", result)
assert.Equal(t, SUB_SET_NOT_FOUND, result)
assert.Equal(t, 1, len(db.SetsMap()["testSet"]["testSubSet"]))
assert.Equal(t, "testValue", db.SetsMap()["testSet"]["testSubSet"][0].value)

Expand All @@ -65,11 +65,11 @@ func TestDataBase(t *testing.T) {
result := db.DropSet([]string{"testSet"})

assert.Equal(t, 2, len(db.SetsMap()))
assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)

result = db.DropSet([]string{"inavlidTestSet"})

assert.Equal(t, "SNF", result)
assert.Equal(t, SET_NOT_FOUND, result)
assert.Equal(t, 2, len(db.SetsMap()))
})

Expand All @@ -82,13 +82,13 @@ func TestDataBase(t *testing.T) {

result := db.DropSubSet([]string{"testSet", "subSetOne"})

assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
assert.Equal(t, 1, len(db.SetsMap()["testSet"]))
assert.Nil(t, db.SetsMap()["testSet"]["subSetOne"])

result = db.DropSubSet([]string{"secondTestSet", "subSetOne"})

assert.Equal(t, "SSNF", result)
assert.Equal(t, SUB_SET_NOT_FOUND, result)
})

t.Run("cleanTest", func(t *testing.T) {
Expand All @@ -111,24 +111,24 @@ func TestDataBase(t *testing.T) {

result := db.CleanSubSet([]string{"secondTestSet", "subSetTwo"})

assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
assert.Equal(t, 0, len(db.SetsMap()["secondTestSet"]["subSetTwo"]))

result = db.CleanSet([]string{"testSet"})

assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
assert.Equal(t, 0, len(db.SetsMap()["testSet"]))

result = db.CleanSets([]string{})

assert.Equal(t, "DONE", result)
assert.Equal(t, DONE, result)
assert.Equal(t, 0, len(db.SetsMap()))

result = db.CleanSet([]string{"invalidSet"})
assert.Equal(t, "SNF", result)
assert.Equal(t, SET_NOT_FOUND, result)

result = db.CleanSubSet([]string{"invalidSet", "invalidSubSet"})
assert.Equal(t, "SSNF", result)
assert.Equal(t, SUB_SET_NOT_FOUND, result)
})

t.Run("countTest", func(t *testing.T) {
Expand Down Expand Up @@ -176,8 +176,8 @@ func TestDataBase(t *testing.T) {
fmt.Print(trimmedResult)
resultsArray := strings.Split(trimmedResult, " ")

assert.NotEqual(t, "INVALID", result)
assert.NotEqual(t, "SSNF", result)
assert.NotEqual(t, INVALID, result)
assert.NotEqual(t, SUB_SET_NOT_FOUND, result)
assert.Equal(t, 50, len(resultsArray))

result = db.GetElements([]string{"testSet", "subSetOne", "10"})
Expand All @@ -186,8 +186,8 @@ func TestDataBase(t *testing.T) {
trimmedResult, _ = strings.CutPrefix(trimmedResult, " ")
resultsArray = strings.Split(trimmedResult, " ")

assert.NotEqual(t, "INVALID", result)
assert.NotEqual(t, "SSNF", result)
assert.NotEqual(t, INVALID, result)
assert.NotEqual(t, SUB_SET_NOT_FOUND, result)
assert.Equal(t, 10, len(resultsArray))
})
}
8 changes: 8 additions & 0 deletions core/database/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ import (
"time"
)

const (
INVALID = "INVALID"
DONE = "DONE"
SET_NOT_FOUND = "SNF"
SUB_SET_NOT_FOUND = "SSNF"
ELEMENT_NOT_FOUND = "ENF"
)

type Element struct {
value string // currently ttrace only supports string datatype for value.
time time.Time // will return and input from user as unix timestamp.
Expand Down

0 comments on commit b8bae62

Please # to comment.