// Copyright (C) The Arvados Authors. All rights reserved.
//
// SPDX-License-Identifier: Apache-2.0

package dispatch

import (
	"time"

	"git.arvados.org/arvados.git/sdk/go/arvados"
	"git.arvados.org/arvados.git/sdk/go/arvadosclient"
	"git.arvados.org/arvados.git/sdk/go/arvadostest"
	. "gopkg.in/check.v1"
)

// Gocheck boilerplate
var _ = Suite(&suite{})

type suite struct{}

func (s *suite) TestTrackContainer(c *C) {
	arv, err := arvadosclient.MakeArvadosClient()
	c.Assert(err, Equals, nil)
	arv.ApiToken = arvadostest.Dispatch1Token

	done := make(chan bool, 1)
	time.AfterFunc(10*time.Second, func() { done <- false })
	d := &Dispatcher{
		Arv: arv,
		RunContainer: func(dsp *Dispatcher, ctr arvados.Container, status <-chan arvados.Container) error {
			for ctr := range status {
				c.Logf("%#v", ctr)
			}
			done <- true
			return nil
		},
	}
	d.TrackContainer(arvadostest.QueuedContainerUUID)
	c.Assert(<-done, Equals, true)
}