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();
    }
示例#2
0
        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();
        }
示例#3
0
        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();
        }
示例#4
0
        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");
        }