Esempio n. 1
0
 public HttpResponseMessage Put(int id, [FromBody] SenderViewModel model)
 {
     if (ModelState.IsValid)
     {
         var sender = new Sender()
         {
             SenderId       = model.SenderId,
             ForName1       = model.ForName1,
             ForName2       = model.ForName2,
             AddressLine1   = model.AddressLine1,
             AddressLine2   = model.AddressLine2,
             AddressLine3   = model.AddressLine3,
             Country        = model.Country,
             Email          = model.Email,
             Mobile         = model.Mobile,
             HMRCPassword   = model.HMRCPassword,
             HMRCUserId     = model.HMRCUserId,
             Postcode       = model.Postcode,
             SenderPassword = model.SenderPassword,
             SurName        = model.SurName,
             Telephone      = model.Telephone,
             Title          = model.Title,
             Type           = model.Type
         };
         bool status = _senderService.Update(sender);
         if (status)
         {
             return(new HttpResponseMessage(HttpStatusCode.OK));
         }
         throw new HttpResponseException(HttpStatusCode.NotFound);
     }
     return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
 }
        public void TestSimpleMessage()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentMessage = "hello";

            // Capture orig values
            int origReceiverData = receiver.ReceivedData;
            bool origSenderData = sender.ReceivedData;

            // Send message
            sender.SendSimpleMessage();

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<int>(origReceiverData, receiver.ReceivedData);
            Assert.AreEqual<bool>(origSenderData, sender.ReceivedData);
        }
        public void TestTwoWayMessage()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Capture orig values
            string origReceiverMessage = receiver.ReceivedMessage;
            int origReceiverData = receiver.ReceivedData;

            // Set message content
            sender.SentData = new Random().Next(100);
            receiver.SentData = true;

            // Send message
            sender.SendTwoWayMessage();

            // Assert data was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Assert data was sent
            Assert.AreEqual<bool>(receiver.SentData, sender.ReceivedData);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<string>(origReceiverMessage, receiver.ReceivedMessage);
        }
        public void TestReceiverUnregister()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentData = new Random().Next(100);

            // Send message
            sender.SendOneWayMessage();

            // Assert message was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Unregister receiver
            receiver.Unsubscribe();

            // Send another message
            sender.SentData += 100;
            sender.SendOneWayMessage();

            // Assert message was NOT received
            Assert.AreNotEqual<int>(sender.SentData, receiver.ReceivedData);
        }
        public void TestReceiverCleanup()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set message content
            sender.SentMessage = "hello";

            // Send message
            sender.SendSimpleMessage();

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Try to GC reciever
            WeakReference weakReceiver = new WeakReference(receiver);
            receiver = null;
            GC.Collect();
            Thread.Sleep(1000);

            // Assert the receiver was allowed to be GC'd
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd");

            // Send another message
            sender.SentMessage = "hello again";
            sender.SendSimpleMessage();

            // Assert the receiver is still not alive
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd after sending message");
        }
        public void TestReceiverCleanup()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestReceiverCleanup");

            // Set message content
            sender.SentMessage = "hello";

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.SimpleMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendSimpleMessageAsync(MessageTokens.Test + "_TestReceiverCleanup");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Try to GC reciever
            var weakReceiver = new WeakReference(receiver);
            receiver = null;
            GC.Collect();
            #if NETFX_CORE
            Task.Delay(1000).Wait();
            #else
            Thread.Sleep(1000);
            #endif

            // Assert the receiver was allowed to be GC'd
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd");

            // Send another message
            sender.SentMessage = "hello again";
            sender.SendSimpleMessage(MessageTokens.Test + "_TestReceiverCleanup");

            // Assert the receiver is still not alive
            Assert.IsFalse(weakReceiver.IsAlive, "Receiver has not been GC'd after sending message");
        }
Esempio n. 7
0
 public HttpResponseMessage Post([FromBody] SenderViewModel model)
 {
     if (ModelState.IsValid)
     {
         var sen = new Sender()
         {
             //SenderId = model.SenderId,
             ForName1       = model.ForName1,
             ForName2       = model.ForName2,
             AddressLine1   = model.AddressLine1,
             AddressLine2   = model.AddressLine2,
             AddressLine3   = model.AddressLine3,
             Country        = model.Country,
             Email          = model.Email,
             Mobile         = model.Mobile,
             HMRCPassword   = model.HMRCPassword,
             HMRCUserId     = model.HMRCUserId,
             Postcode       = model.Postcode,
             SenderPassword = model.SenderPassword,
             SurName        = model.SurName,
             Telephone      = model.Telephone,
             Title          = model.Title,
             Type           = model.Type
         };
         var sucess = _senderService.Save(sen);
         if (sucess)
         {
             var msg = new HttpResponseMessage(HttpStatusCode.Created);
             return(msg);
         }
         else
         {
             throw new HttpResponseException(HttpStatusCode.Conflict);
         }
     }
     else
     {
         throw new HttpResponseException(new HttpResponseMessage
         {
             StatusCode   = HttpStatusCode.BadRequest,
             ReasonPhrase = "Model validation failed"
         });
     }
 }
        public void TestSimpleMessage()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestSimpleMessage");

            // Set message content
            sender.SentMessage = "hello";

            // Capture orig values
            int origReceiverData = receiver.ReceivedData;
            bool origSenderData = sender.ReceivedData;

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.SimpleMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendSimpleMessageAsync(MessageTokens.Test + "_TestSimpleMessage");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Unregister to receive messages
            receiver.Unsubscribe(MessageTokens.Test + "_TestSimpleMessage");

            // Assert message was received
            Assert.AreEqual<string>(sender.SentMessage, receiver.ReceivedMessage);

            // Assert receiver and sender data have not changed
            Assert.AreEqual<int>(origReceiverData, receiver.ReceivedData);
            Assert.AreEqual<bool>(origSenderData, sender.ReceivedData);
        }
        public void TestReceiverUnregister()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestReceiverUnregister");

            // Set message content
            sender.SentData = new Random().Next(100);

            // Listen for response
            var wait = new AutoResetEvent(false);
            receiver.OneWayMessageReceived += (o, args) => wait.Set();

            // Send message
            sender.SendOneWayMessageAsync(MessageTokens.Test + "_TestReceiverUnregister");

            // Wait for response
            if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                Assert.Fail("Message not received in timeout");

            // Assert message was received
            Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

            // Unregister receiver
            receiver.Unsubscribe(MessageTokens.Test + "_TestReceiverUnregister");

            // Send another message
            sender.SentData += 100;
            sender.SendOneWayMessage(MessageTokens.Test + "_TestReceiverUnregister");

            // Assert message was NOT received
            Assert.AreNotEqual<int>(sender.SentData, receiver.ReceivedData);
        }
        public void TestRepeatSend()
        {
            // Create sender and receiver
            SenderViewModel sender = new SenderViewModel();
            ReceiverViewModel receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe();

            // Set init value
            int val = new Random().Next(100);

            // Iterate 3 times
            for (int i = 0; i < 3; i++)
            {
                // Set message content
                sender.SentData = val;

                // Send message
                sender.SendOneWayMessage();

                // Assert message was received
                Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

                // Increment value
                val += 100;
            }
        }
        public void TestRepeatSend()
        {
            // Create sender and receiver
            var sender = new SenderViewModel();
            var receiver = new ReceiverViewModel();

            // Register receiver to get messages
            receiver.Subscribe(MessageTokens.Test + "_TestRepeatSend");

            // Set init value
            int val = new Random().Next(100);

            // Iterate 3 times
            for (int i = 0; i < 3; i++)
            {
                // Set message content
                sender.SentData = val;

                // Listen for response
                var wait = new AutoResetEvent(false);
                receiver.OneWayMessageReceived += (o, args) => wait.Set();

                // Send message
                sender.SendOneWayMessageAsync(MessageTokens.Test + "_TestRepeatSend");

                // Wait for response
                if (!wait.WaitOne(TimeSpan.FromSeconds(15)))
                    Assert.Fail("Message not received in timeout");

                // Assert message was received
                Assert.AreEqual<int>(sender.SentData, receiver.ReceivedData);

                // Increment value
                val += 100;
            }

            // Unregister to receive messages
            receiver.Unsubscribe(MessageTokens.Test + "_TestRepeatSend");
        }