/******************************************************************************
 * Copyright (c)  2022 PingCAP                                                *
 * Licensed under the Apache License, Version 2.0 (the "License");            *
 * you may not use this file except in compliance with the License.           *
 * You may obtain a copy of the License at                                    *
 *                                                                            *
 * http://www.apache.org/licenses/LICENSE-2.0                                 *
 *                                                                            *
 * Unless required by applicable law or agreed to in writing, software        *
 * distributed under the License is distributed on an "AS IS" BASIS,          *
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
 * See the License for the specific language governing permissions and        *
 * limitations under the License.                                             *
 ******************************************************************************/

/*******************************************************************************
 * @File: file_test.go
 * @Description:
 * @Author: jiangxunyu@pingcap.com
 * @Version: 1.0.0
 * @Date: 2022/6/17 16:15
*******************************************************************************/

package utils

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func Test_Exists(t *testing.T) {
	t.Run("success", func(t *testing.T) {
		exists := Exists("./file_test.go")
		assert.True(t, exists)
	})

	t.Run("not exists", func(t *testing.T) {
		exists := Exists("./not_exists.go")
		assert.False(t, exists)
	})
}

func Test_IsDir(t *testing.T) {
	t.Run("success", func(t *testing.T) {
		isDir := IsDir("./")
		assert.True(t, isDir)
	})

	t.Run("not dir", func(t *testing.T) {
		isDir := IsDir("./file_test.go")
		assert.False(t, isDir)
	})

	t.Run("dir not exists", func(t *testing.T) {
		isFile := IsDir("./not_exists/")
		assert.False(t, isFile)
	})
}

func Test_IsFile(t *testing.T) {
	t.Run("success", func(t *testing.T) {
		isFile := IsFile("./file_test.go")
		assert.True(t, isFile)
	})

	t.Run("not file", func(t *testing.T) {
		isFile := IsFile("./")
		assert.False(t, isFile)
	})

	t.Run("file not exists", func(t *testing.T) {
		isFile := IsFile("./not_exists.go")
		assert.False(t, isFile)
	})
}
