package framework

const PhasedComponentScalerMockEmptyIdStr PhasedComponentScalerType = "PhasedComponentScalerMockEmpty"

type PhasedComponentScalerMockEmpty struct {
	eventReceiver EventReceiver
	clusterId     ClusterId
	componentName ComponentName
}

func NewPhasedComponentScalerMockEmpty(
	eventReceiver EventReceiver,
	clusterId ClusterId,
	componentName ComponentName) *PhasedComponentScalerMockEmpty {

	return &PhasedComponentScalerMockEmpty{
		eventReceiver: eventReceiver,
		clusterId:     clusterId,
		componentName: componentName,
	}
}

func (this *PhasedComponentScalerMockEmpty) PullNewComponentModification(current ClusterComponentV1) (newReplicas uint, err error) {
	this.eventReceiver.OnEvent(
		EventComponentScalerV1PullNewComponentModification,
		EventDataWithName("ClusterId", CloneableString(this.clusterId)),
		EventDataWithName("ComponentName", CloneableString(this.componentName)))
	return current.Replicas, nil
}
