func buildMockPublishReply(machine *client.Machine) mockPublishReplyFunc {
	return func(reply *client.Publish, apiClient *client.RancherClient) error {
		if reply.Data == nil {
			return nil
		}

		if machine.Data == nil {
			machine.Data = map[string]interface{}{}
		}

		if data, ok := reply.Data["+data"]; ok {
			d := data.(map[string]interface{})
			if machineDir, mdOk := d[machineDirField]; mdOk {
				machine.Data[machineDirField] = machineDir
			}

			if bootstrap, bootOk := d[bootstrappedAtField]; bootOk {
				machine.Data[bootstrappedAtField] = bootstrap
			}
		}
		return nil
	}
}