| @ -0,0 +1,262 @@ | |||||
| package forge_test | |||||
| import ( | |||||
| "testing" | |||||
| "github.com/brettlangdon/forge" | |||||
| ) | |||||
| func TestNewPrimative(t *testing.T) { | |||||
| t.Parallel() | |||||
| value, err := forge.NewPrimative(true) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.BOOLEAN { | |||||
| t.Error("value is not a BOOLEAN") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case bool: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a bool") | |||||
| return | |||||
| } | |||||
| if rawVal.(bool) != true { | |||||
| t.Error("expected value.GetValue() to be equal to 'true'") | |||||
| } | |||||
| } | |||||
| func TestNewBoolean(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewBoolean(true) | |||||
| if value.GetType() != forge.BOOLEAN { | |||||
| t.Error("value is not a BOOLEAN") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case bool: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a bool") | |||||
| return | |||||
| } | |||||
| if rawVal.(bool) != true { | |||||
| t.Error("expected value.GetValue() to be equal to 'true'") | |||||
| } | |||||
| } | |||||
| func TestNewFloat(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewFloat(50.5) | |||||
| if value.GetType() != forge.FLOAT { | |||||
| t.Error("value is not a FLOAT") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case float64: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a float64") | |||||
| return | |||||
| } | |||||
| if rawVal.(float64) != 50.5 { | |||||
| t.Error("expected value.GetValue() to be equal to '50.5'") | |||||
| } | |||||
| } | |||||
| func TestNewInteger(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewInteger(50) | |||||
| if value.GetType() != forge.INTEGER { | |||||
| t.Error("value is not a INTEGER") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case int64: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a int64") | |||||
| return | |||||
| } | |||||
| if rawVal.(int64) != 50 { | |||||
| t.Error("expected value.GetValue() to be equal to '50'") | |||||
| } | |||||
| } | |||||
| func TestNewNull(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewNull() | |||||
| if value.GetType() != forge.NULL { | |||||
| t.Error("value is not a NULL") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case nil: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a nil") | |||||
| return | |||||
| } | |||||
| if rawVal != nil { | |||||
| t.Error("expected value.GetValue() to be equal to 'nil'") | |||||
| } | |||||
| } | |||||
| func TestNewString(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewString("hello") | |||||
| if value.GetType() != forge.STRING { | |||||
| t.Error("value is not a STRING") | |||||
| return | |||||
| } | |||||
| rawVal := value.GetValue() | |||||
| switch rawVal.(type) { | |||||
| case string: | |||||
| // this is what we want to happen | |||||
| default: | |||||
| t.Error("expected value.GetValue() to be a string") | |||||
| return | |||||
| } | |||||
| if rawVal.(string) != "hello" { | |||||
| t.Error("expected value.GetValue() to be equal to '\"hello\"'") | |||||
| } | |||||
| } | |||||
| func TestUpdateValue(t *testing.T) { | |||||
| t.Parallel() | |||||
| value := forge.NewNull() | |||||
| // Boolean | |||||
| err := value.UpdateValue(true) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.BOOLEAN { | |||||
| t.Error("value is not a BOOLEAN") | |||||
| return | |||||
| } | |||||
| if value.GetValue().(bool) != true { | |||||
| t.Error("expected value.GetValue() to be equal to 'true'") | |||||
| } | |||||
| // Float | |||||
| err = value.UpdateValue(50.5) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.FLOAT { | |||||
| t.Error("value is not a FLOAT") | |||||
| return | |||||
| } | |||||
| if value.GetValue().(float64) != 50.5 { | |||||
| t.Error("expected value.GetValue() to be equal to '50.5'") | |||||
| } | |||||
| // Integer int | |||||
| err = value.UpdateValue(50) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.INTEGER { | |||||
| t.Error("value is not a INTEGER") | |||||
| return | |||||
| } | |||||
| if value.GetValue().(int64) != 50 { | |||||
| t.Error("expected value.GetValue() to be equal to '50'") | |||||
| } | |||||
| // Integer int64 | |||||
| err = value.UpdateValue(int64(50)) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.INTEGER { | |||||
| t.Error("value is not a INTEGER") | |||||
| return | |||||
| } | |||||
| if value.GetValue().(int64) != 50 { | |||||
| t.Error("expected value.GetValue() to be equal to '50'") | |||||
| } | |||||
| // Null | |||||
| err = value.UpdateValue(nil) | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.NULL { | |||||
| t.Error("value is not a NULL") | |||||
| return | |||||
| } | |||||
| if value.GetValue() != nil { | |||||
| t.Error("expected value.GetValue() to be equal to '50'") | |||||
| } | |||||
| // String | |||||
| err = value.UpdateValue("hello") | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| if value.GetType() != forge.STRING { | |||||
| t.Error("value is not a STRING") | |||||
| return | |||||
| } | |||||
| if value.GetValue().(string) != "hello" { | |||||
| t.Error("expected value.GetValue() to be equal to '\"hello\"'") | |||||
| return | |||||
| } | |||||
| } | |||||
| func TestUpdateValueUnknown(t *testing.T) { | |||||
| value, err := forge.NewPrimative("hello") | |||||
| if err != nil { | |||||
| t.Error(err) | |||||
| return | |||||
| } | |||||
| newVal := []string{"hello", "world"} | |||||
| err = value.UpdateValue(newVal) | |||||
| if err == nil { | |||||
| t.Error("expected an error, got none") | |||||
| return | |||||
| } | |||||
| } | |||||