public static void Main() { //subject WeatherSubscriber DeutscherWetterdienst = new WeatherSubscriber(); //observers WeatherProvider WebDienst = new WeatherProvider("WebDienst"); WebDienst.Subscribe(DeutscherWetterdienst); WeatherProvider WetterApp = new WeatherProvider("WetterApp"); WetterApp.Subscribe(DeutscherWetterdienst); WeatherProvider Tagesschau = new WeatherProvider("Tagesschau"); Tagesschau.Subscribe(DeutscherWetterdienst); Console.WriteLine("Achtung! Der deutscher Wetterdienst hat neue Wetterdaten:"); DeutscherWetterdienst.SetMeasurements(new WeatherData(10, 7, 14)); Console.Read(); Tagesschau.Unsubscribe(); Console.WriteLine("Achtung! Die Tagesschau sucht sich ein anderen Wetterdienst."); Console.Read(); Console.WriteLine("Achtung! Der deutscher Wetterdienst hat neue Wetterdaten:"); DeutscherWetterdienst.SetMeasurements(new WeatherData(28, 26, 14)); Console.Read(); Console.WriteLine("Fehler! Der deutscher Wetterdienst hat keine Wetterdaten"); DeutscherWetterdienst.SetMeasurements(null); Console.Read(); }
public void Test_verify_subscribe_called() { var name = "Test Subsciber"; _mockWeatherChannel.Setup(t => t.Subscribe(name, It.IsAny <EventHandler <WeatherInfoEventArgs> >())).Verifiable(); var subscribe = new WeatherSubscriber(name, _mockWeatherChannel.Object); _mockWeatherChannel.Verify(); }
static void Main(string[] args) { WeatherSubscriber subscriber = new WeatherSubscriber(); WeatherProvider channel7 = new WeatherProvider("Channel 7"); channel7.Subscribe(subscriber); WeatherProvider cnn = new WeatherProvider("CNN"); cnn.Subscribe(subscriber); WeatherProvider mouseTv = new WeatherProvider("Mouse TV"); mouseTv.Subscribe(subscriber); subscriber.SetMeasurements(new WeatherData(10, 7, 14)); mouseTv.Unsubscribe(); subscriber.SetMeasurements(new WeatherData(28, 26, 14)); subscriber.SetMeasurements(null); Console.Read(); }
static async Task Main(string[] args) { do { IWeatherChannel weatherChannel = new WeatherChannel(); var subscriber1 = new WeatherSubscriber("Subscriber 1", weatherChannel); var subscriber2 = new WeatherSubscriber("Subscriber 2", weatherChannel); WeatherPublisher publisher = new WeatherPublisher(weatherChannel); await publisher.PublishDataAsync(); subscriber1.UnSubscribe(); var subscriber3 = new WeatherSubscriber("Subscriber 3", weatherChannel); await publisher.PublishDataAsync(); subscriber2.UnSubscribe(); subscriber3.UnSubscribe(); Console.WriteLine("Do you want to continue (Y/N)? "); } while (Console.ReadLine().ToUpper() == "Y"); }