public void IsSendable_NoHeader() { var target = new ClusterMessage(); target.Header = null; target.IsSendable().Should().BeFalse(); }
public void IsSendable_NoReturnAddress() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.Object; target.PayloadObject = new object(); target.IsSendable().Should().BeFalse(); }
public void IsSendable_CommandStringEmpty() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.CommandString; target.CommandStrings = new List <string>(); target.IsSendable().Should().BeFalse(); }
public void IsSendable_ObjectPayloadNull() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.Object; target.PayloadObject = null; target.IsSendable().Should().BeFalse(); }
public void IsSendable_RawFramesEmpty() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.Raw; target.RawFrames = new List <byte[]>(); target.IsSendable().Should().BeFalse(); }
public void IsSendable_RawFramesNull() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.Raw; target.RawFrames = null; target.IsSendable().Should().BeFalse(); }
public void IsSendable_ToZoneNoZone() { var target = new ClusterMessage(); target.Header.PayloadType = MessagePayloadType.Object; target.Header.FromNetworkId = "ABC"; target.Header.FromNodeId = "123"; target.PayloadObject = new object(); target.Header.ToType = TargetType.Zone; target.IsSendable().Should().BeFalse(); }
public void Send(ClusterMessage envelope) { envelope.Header.FromNetworkId = _uuid.ToString(); envelope.Header.FromNodeId = _core.NodeId; if (envelope.Header.FromType == TargetType.Node) { envelope.Header.FromEntityId = _core.NodeId; } if (!envelope.IsSendable()) { return; } envelope.FillInNetworkNodeId(envelope.Header.FromNetworkId); var message = _mapper.Map(envelope); // If we have a proxy node ID, send the message there and let the proxy sort out // further actions. // Otherwise a zone type becomes a Shout and a Node type becomes a Whisper if (!string.IsNullOrEmpty(envelope.Header.ProxyNodeNetworkId)) { Guid uuid; bool ok = Guid.TryParse(envelope.Header.ProxyNodeNetworkId, out uuid); if (ok) { _zyre.Whisper(uuid, message); } } else if (envelope.Header.ToType == TargetType.Cluster) { _zyre.Shout(Zones.ZoneAll, message); } else if (envelope.Header.ToType == TargetType.Zone) { _zyre.Shout(envelope.Header.ZoneName, message); } else if (envelope.Header.ToType == TargetType.Node) { _zyre.Whisper(envelope.Header.GetToNetworkUuid(), message); } }
public void IsSendable_Default() { var target = new ClusterMessage(); target.IsSendable().Should().BeFalse(); }