public void SerializeException_WithoutProperties_SerializesWithoutProperties()
        {
            // Arrange
            var innerException = new KeyNotFoundException("No trigger with this key found");
            var exception      = new LogicAppTriggerNotFoundException("Trigger could not be found", innerException);

            var expected = exception.ToString();

            // Act
            LogicAppTriggerNotFoundException actual = SerializeDeserializeException(exception);

            // Assert
            Assert.Equal(expected, actual.ToString());
        }
        public void CreateException_WithAllProperties_AssignsAllProperties()
        {
            // Arrange
            string logicApp = "logic app name", resourceGroup = "resource group", subscriptionId = "subscription ID";
            string message        = "There's something wrong with finding the trigger in the logic app";
            var    innerException = new KeyNotFoundException("Couldn't find the trigger in the logic app");

            // Act
            var exception = new LogicAppTriggerNotFoundException(subscriptionId, resourceGroup, logicApp, message, innerException);

            // Assert
            Assert.Equal(message, exception.Message);
            Assert.Equal(logicApp, exception.LogicAppName);
            Assert.Equal(resourceGroup, exception.ResourceGroup);
            Assert.Equal(subscriptionId, exception.SubscriptionId);
            Assert.Equal(innerException, exception.InnerException);
        }
        public void SerializeException_WithProperties_SerializeWithProperties()
        {
            // Arrange
            string logicApp       = "logic app name",
                   resourceGroup  = "resource group",
                   subscriptionId = "subscription ID";

            var innerException = new KeyNotFoundException("No trigger with this key found");
            var exception      = new LogicAppTriggerNotFoundException(subscriptionId, resourceGroup, logicApp, "Trigger could not be found", innerException);

            string expected = exception.ToString();

            // Act
            LogicAppTriggerNotFoundException actual = SerializeDeserializeException(exception);

            // Assert
            Assert.Equal(expected, actual.ToString());
            Assert.Equal(logicApp, actual.LogicAppName);
            Assert.Equal(resourceGroup, actual.ResourceGroup);
            Assert.Equal(subscriptionId, actual.SubscriptionId);
        }
        private static LogicAppTriggerNotFoundException SerializeDeserializeException(LogicAppTriggerNotFoundException exception)
        {
            var formatter = new BinaryFormatter();

            using (var contents = new MemoryStream())
            {
                formatter.Serialize(contents, exception);
                contents.Seek(0, 0);

                var deserialized = (LogicAppTriggerNotFoundException)formatter.Deserialize(contents);
                return(deserialized);
            }
        }