package framework

const InputProviderMockEmptyIdStr InputProviderType = "InputProviderMockEmpty"

var InputProviderMockEmptyMeta = InputProviderMeta{
	Type:             InputProviderMockEmptyIdStr,
	InterfaceVersion: InputInterfaceV1IdStr,
}

type InputProviderMockEmpty struct {
	eventReceiver EventReceiver
}

func NewInputProviderMockEmpty(eventReceiver EventReceiver) *InputProviderMockEmpty {
	return &InputProviderMockEmpty{
		eventReceiver: eventReceiver,
	}
}

func (this *InputProviderMockEmpty) GetRangeMetrics(
	clusterId ClusterId,
	name MetricName,
	fromTo TimeRange) (MetricTimeValueInt64s, error) {

	this.eventReceiver.OnEvent(
		EventInputV1GetRangeMetrics,
		EventDataWithName("ClusterId", CloneableString(clusterId)),
		EventDataWithName("FromTo", CloneableString(fromTo.String())))
	return nil, nil
}

func (this *InputProviderMockEmpty) GetClusterTopology(clusterId ClusterId) (ClusterTopologyV1, error) {
	this.eventReceiver.OnEvent(
		EventInputV1GetTopology,
		EventDataWithName("ClusterId", CloneableString(clusterId)))
	// TODO: return error?
	return make(ClusterTopologyV1), nil
}
