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

style: using results properly #87

Merged
merged 1 commit into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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