コード例 #1
0
        public void Throws_when_message_of_unknown_type_received()
        {
            var sut  = new StockMessageTranslator("Buyer");
            var mock = new Mock <IStockEventListener>(MockBehavior.Strict);

            sut.AddStockEventListener(mock.Object);

            Action action = () => sut.ProcessMessage("Event: UNKNOWN;");

            action.ShouldThrow <ArgumentException>();
        }
コード例 #2
0
        public void Notifies_current_price_when_price_message_received()
        {
            var sut  = new StockMessageTranslator("Buyer");
            var mock = new Mock <IStockEventListener>();

            sut.AddStockEventListener(mock.Object);

            sut.ProcessMessage("Event: PRICE; CurrentPrice: 12; NumberInStock: 34");

            mock.Verify(x => x.CurrentPrice(12, 34));
        }
コード例 #3
0
        public void Notifies_item_purchased_by_other_buyer_when_purchase_message_received()
        {
            var sut  = new StockMessageTranslator("Buyer");
            var mock = new Mock <IStockEventListener>();

            sut.AddStockEventListener(mock.Object);

            sut.ProcessMessage("Event: PURCHASE; BuyerName: OtherBuyer; NumberSold: 1");

            mock.Verify(x => x.ItemPurchased(1, PurchaseSource.FromOtherBuyer));
        }
コード例 #4
0
        public void Notifies_stock_closes_when_close_message_received()
        {
            var sut  = new StockMessageTranslator("Buyer");
            var mock = new Mock <IStockEventListener>();

            sut.AddStockEventListener(mock.Object);

            sut.ProcessMessage("Event: CLOSE;");

            mock.Verify(x => x.ItemClosed());
        }
コード例 #5
0
 public StockItem(IStockItemConnection connection)
 {
     _connection = connection;
     _translator = new StockMessageTranslator(connection.BuyerName);
     _connection.MessageReceived += TranslateMessage;
 }