123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package logger
- import (
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestFileWrite(t *testing.T) {
- fileName := "test_file"
- fileLog := fileName + ".log"
- testData := []byte(string("hello Dalton, how are you doing?"))
- defer func() {
- os.Remove(fileLog)
- }()
- w := NewFileRollingWriter("", fileName, 1000, 2)
- defer w.Close()
- l, err := w.Write(testData)
- assert.NoError(t, err)
- assert.Equal(t, l, len(testData), "expected write length and data length to match")
- d, err := ioutil.ReadFile(fileLog)
- assert.FileExists(t, fileLog, "file doesn't exist at expected path")
- assert.Equal(t, d, testData, "expected data in file to match test data")
- }
- func TestRolling(t *testing.T) {
- dirName := "testdir"
- err := os.Mkdir(dirName, 0755)
- assert.NoError(t, err)
- fileName := "test_file"
- firstFile := filepath.Join(dirName, fileName+".log")
- secondFile := filepath.Join(dirName, fileName+"-1.log")
- thirdFile := filepath.Join(dirName, fileName+"-2.log")
- defer func() {
- os.RemoveAll(dirName)
- os.Remove(firstFile)
- os.Remove(secondFile)
- os.Remove(thirdFile)
- }()
- w := NewFileRollingWriter(dirName, fileName, 1000, 2)
- defer w.Close()
- for i := 99; i >= 1; i-- {
- testData := []byte(fmt.Sprintf("%d bottles of beer on the wall...", i))
- w.Write(testData)
- }
- assert.FileExists(t, firstFile, "first file doesn't exist as expected")
- assert.FileExists(t, secondFile, "second file doesn't exist as expected")
- assert.FileExists(t, thirdFile, "third file doesn't exist as expected")
- assert.False(t, exists(filepath.Join(dirName, fileName+"-3.log")), "limited to two files and there is more")
- }
- func TestSingleFile(t *testing.T) {
- fileName := "test_file"
- testData := []byte(string("hello Dalton, how are you doing?"))
- defer func() {
- os.Remove(fileName)
- }()
- w := NewFileRollingWriter(fileName, fileName, 1000, 2)
- defer w.Close()
- l, err := w.Write(testData)
- assert.NoError(t, err)
- assert.Equal(t, l, len(testData), "expected write length and data length to match")
- d, err := ioutil.ReadFile(fileName)
- assert.FileExists(t, fileName, "file doesn't exist at expected path")
- assert.Equal(t, d, testData, "expected data in file to match test data")
- }
- func TestSingleFileInDirectory(t *testing.T) {
- dirName := "testdir"
- err := os.Mkdir(dirName, 0755)
- assert.NoError(t, err)
- fileName := "test_file"
- fullPath := filepath.Join(dirName, fileName+".log")
- testData := []byte(string("hello Dalton, how are you doing?"))
- defer func() {
- os.Remove(fullPath)
- os.RemoveAll(dirName)
- }()
- w := NewFileRollingWriter(fullPath, fileName, 1000, 2)
- defer w.Close()
- l, err := w.Write(testData)
- assert.NoError(t, err)
- assert.Equal(t, l, len(testData), "expected write length and data length to match")
- d, err := ioutil.ReadFile(fullPath)
- assert.FileExists(t, fullPath, "file doesn't exist at expected path")
- assert.Equal(t, d, testData, "expected data in file to match test data")
- }
|