costmodel_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package costmodel_test
  2. // Mocks can be regenerated with something like GO111MODULE=on mockgen -destination ./test/mocks/mock_provider.go -package mocks github.com/kubecost/cost-model/cloud Provider
  3. import (
  4. "net/url"
  5. "testing"
  6. "time"
  7. "github.com/golang/mock/gomock"
  8. //costModel "github.com/kubecost/cost-model/costmodel"
  9. "github.com/kubecost/test/mocks"
  10. v1 "k8s.io/api/core/v1"
  11. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  12. //testclient "k8s.io/client-go/kubernetes/fake"
  13. fakecontroller "k8s.io/client-go/tools/cache/testing"
  14. )
  15. func TestCostModel(t *testing.T) {
  16. ctrl := gomock.NewController(t)
  17. defer ctrl.Finish()
  18. u, _ := url.Parse("http://localhost:9003")
  19. cli := mocks.NewMockClient(ctrl)
  20. cli.EXPECT().URL(gomock.Any(), gomock.Any()).AnyTimes().Return(u)
  21. cli.EXPECT().Do(gomock.Any(), gomock.Any()).AnyTimes()
  22. //clientset := testclient.NewSimpleClientset()
  23. //provider := mocks.NewMockProvider(ctrl)
  24. fc := fakecontroller.NewFakeControllerSource()
  25. //cm := costModel.NewCostModel(fc)
  26. fc.Add(&v1.Pod{
  27. ObjectMeta: metav1.ObjectMeta{
  28. Name: "foo",
  29. },
  30. })
  31. time.Sleep(100 * time.Millisecond)
  32. /*
  33. c, err := cm.ComputeCostData(cli, clientset, provider, "1d", "", "")
  34. if err != nil {
  35. panic(err)
  36. }
  37. for _, costs := range c {
  38. assert.Equal(t, "foo", costs.PodName)
  39. }
  40. */
  41. }