public void Should_John_Send_Meeting_Message() { _head1.Send("Meeting on Tuesday, please all ack"); _head1.ReceivedMessage.Should().BeEmpty(); _branch.ReceivedMessage.Should().Be("David received from John: Meeting on Tuesday, please all ack"); _head2.ReceivedMessage.Should().Be("Lucy received from John: Meeting on Tuesday, please all ack"); }
static void MainRun() { Mediator m = new Mediator(); // Two from head office and one from a branch office Colleague head1 = new Colleague(m, "John"); ColleagueB branch1 = new ColleagueB(m, "David"); Colleague head2 = new Colleague(m, "Lucy"); head1.Send("Meeting on Tuesday, please all ack"); branch1.Send("Ack"); // by design does not get a copy m.Block(branch1.Receive); // temporarily gets no messages head1.Send("Still awaiting some Acks"); head2.Send("Ack"); m.Unblock(branch1.Receive); //open again head1.Send("Thanks all"); }
public void Should_David_Send_Ack_Message() { _branch.Send("Ack"); _branch.ReceivedMessage.Should().BeEmpty(); _head1.ReceivedMessage.Should().Be("John received from David: Ack"); _head2.ReceivedMessage.Should().Be("Lucy received from David: Ack"); }
/// <summary> /// 中介者模式 /// </summary> private static void HandleMediator() { AbstractMediator mediator = new QQMediator(); AbstractColleague colleague = new Colleague(mediator); colleague.UserName = "******"; AbstractColleague colleague2 = new Colleague(mediator); colleague2.UserName = "******"; mediator.Add(colleague); mediator.Add(colleague2); //发送消息 colleague.Send("灵儿", "你好"); colleague.Send("紫涵", "早上好~"); Console.Read(); }
public void BidirectionalCommunication() { // Send a message to colleague2 Assert.IsTrue(_colleague1.Send("hi", _colleague2)); // Send a message back to colleague1 Assert.IsTrue(_colleague2.Send("hello", _colleague1)); // Message history is present in colleague2 received from colleague1 Assert.IsTrue(((ConcreteColleague2)_colleague2).MessageHistory.Contains("hi")); // Message history is present in colleague1 received from colleague2 Assert.IsTrue(((ConcreteColleague1)_colleague1).MessageHistory.Contains("hello")); }
public void Mediator_Test() { var mediator = new Mediator(); var A = new Colleague(mediator); var B = new Colleague(mediator); mediator.colleagueA = A; mediator.colleagueB = B; A.Message = "Mike"; A.Send(); var lastMsg = B.LastMessage; Assert.IsTrue(lastMsg.Contains(A.Message)); }
public void Main() { var m = new Mediator(); // Two from head office and one from a branch office var head1 = new Colleague(m, "John"); var branch1 = new ColleagueB(m, "David"); var head2 = new Colleague(m, "Lucy"); head1.Send("Meeting on Tuesday, please all ack"); branch1.Send("Ack"); // by design does not get a copy m.Block(branch1.Receive); // temporarily gets no messages head1.Send("Still awaiting some Acks"); head2.Send("Ack"); m.Unblock(branch1.Receive); // open again head1.Send("Thanks all"); }