package entity import ( "testing" "github.com/stretchr/testify/assert" ) func TestFileShare_TableName(t *testing.T) { fileShare := &FileShare{} assert.Equal(t, "files_share", fileShare.TableName()) } func TestNewFileShare(t *testing.T) { r := NewFileShare(123, 123, "test") assert.IsType(t, &FileShare{}, r) assert.Equal(t, uint(0x7b), r.FileID) assert.Equal(t, uint(0x7b), r.ServiceID) assert.Equal(t, "test", r.RemoteName) assert.Equal(t, "new", r.Status) } func TestFirstOrCreateFileShare(t *testing.T) { t.Run("not yet existing", func(t *testing.T) { fileShare := &FileShare{FileID: 123, ServiceID: 888, RemoteName: "test888"} result := FirstOrCreateFileShare(fileShare) if result == nil { t.Fatal("result share should not be nil") } if result.FileID != fileShare.FileID { t.Errorf("FileID should be the same: %d %d", result.FileID, fileShare.FileID) } if result.ServiceID != fileShare.ServiceID { t.Errorf("ServiceID should be the same: %d %d", result.ServiceID, fileShare.ServiceID) } }) t.Run("existing", func(t *testing.T) { fileShare := NewFileShare(778, 999, "NameForRemote") result := FirstOrCreateFileShare(fileShare) if result == nil { t.Fatal("result share should not be nil") } if result.FileID != fileShare.FileID { t.Errorf("FileID should be the same: %d %d", result.FileID, fileShare.FileID) } if result.ServiceID != fileShare.ServiceID { t.Errorf("ServiceID should be the same: %d %d", result.ServiceID, fileShare.ServiceID) } }) } func TestFileShare_Updates(t *testing.T) { t.Run("success", func(t *testing.T) { fileShare := NewFileShare(123, 123, "NameBeforeUpdate") assert.Equal(t, "NameBeforeUpdate", fileShare.RemoteName) assert.Equal(t, uint(0x7b), fileShare.ServiceID) err := fileShare.Updates(FileShare{RemoteName: "NameAfterUpdate", ServiceID: 999}) if err != nil { t.Fatal(err) } assert.Equal(t, "NameAfterUpdate", fileShare.RemoteName) assert.Equal(t, uint(0x3e7), fileShare.ServiceID) }) } func TestFileShare_Update(t *testing.T) { t.Run("success", func(t *testing.T) { fileShare := NewFileShare(123, 123, "NameBeforeUpdate2") assert.Equal(t, "NameBeforeUpdate2", fileShare.RemoteName) assert.Equal(t, uint(0x7b), fileShare.ServiceID) err := fileShare.Update("RemoteName", "new-name") if err != nil { t.Fatal(err) } assert.Equal(t, "new-name", fileShare.RemoteName) assert.Equal(t, uint(0x7b), fileShare.ServiceID) }) } func TestFileShare_Save(t *testing.T) { t.Run("success", func(t *testing.T) { fileShare := NewFileShare(123, 123, "Nameavc") initialDate := fileShare.UpdatedAt err := fileShare.Save() if err != nil { t.Fatal(err) } afterDate := fileShare.UpdatedAt assert.True(t, afterDate.After(initialDate)) }) }