static void Main(string[] args) { var publisher = new TemperatureSensor(); IListener janWorker = new WorkerListener(); IListener adamWorker = new WorkerListener(); IListener kamilaWorker = new WorkerListener(); IListener piotrManager = new ManagerListener(); IListener jerzyBoss = new BossListener(); publisher.Subscribe(janWorker); publisher.Subscribe(adamWorker); publisher.Subscribe(kamilaWorker); publisher.Subscribe(piotrManager); publisher.Subscribe(jerzyBoss); int i = 10; while (--i > 0) { publisher.CheckTemperature(); } Console.Read(); }
public void RequestBallotAndAnnounceBallotReceivedAndRevokedTest() { var vn = new VoterNumber(250000); var cpr = new CPR(2312881234); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Unavailable); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Unavailable); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Unavailable); Assert.That(Manager.Database[vn, cpr] == BallotStatus.Unavailable); var data = new List <EncryptedVoterData> { new EncryptedVoterData(new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(vn.Value), Peer1.Crypto.VoterDataEncryptionKey)), new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(cpr.Value), Peer1.Crypto.VoterDataEncryptionKey)), new CipherText(Peer1.Crypto.AsymmetricEncrypt(Bytes.From(cpr.Value + (uint)BallotStatus.NotReceived), Peer1.Crypto.VoterDataEncryptionKey))) }; Peer1.Database.Import(data); Peer2.Database.Import(data); Peer3.Database.Import(data); Manager.Database.Import(data); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived); var managerListenerResult = ManagerListener.BeginInvoke(null, null); AsyncManagerAnnounce(() => Peer1.RequestBallot(vn, cpr)); ManagerListener.EndInvoke(managerListenerResult); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Received); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Received); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Received); Assert.That(Manager.Database[vn, cpr] == BallotStatus.Received); AsyncManagerAnnounce(() => Manager.AnnounceRevokeBallot(vn, cpr)); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived); managerListenerResult = ManagerListener.BeginInvoke(null, null); AsyncManagerAnnounce(() => Peer1.RequestBallot(cpr, "yo boii")); ManagerListener.EndInvoke(managerListenerResult); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.Received); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.Received); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.Received); Assert.That(Manager.Database[vn, cpr] == BallotStatus.Received); AsyncManagerAnnounce(() => Manager.AnnounceRevokeBallot(cpr, "yo boii")); Assert.That(Peer1.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer2.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Peer3.Database[vn, cpr] == BallotStatus.NotReceived); Assert.That(Manager.Database[vn, cpr] == BallotStatus.NotReceived); }
public void Register(ManagerListener listener) { m_Listeners.Add(listener); }