public void SerializeAndDeserializeDataCarrierTest()
        {
            var dataCarrier = new DataCarrier() {
                ParameterA = "ABC",
                ParameterB = "DEF",
                Result = "GHI"
            };

            dataCarrier.ParameterA.CreateUnsecuredString().Should().Be("ABC");
            dataCarrier.ParameterB.CreateUnsecuredString().Should().Be("DEF");
            dataCarrier.Result.CreateUnsecuredString().Should().Be("GHI");

            using (var memoryStream01 = new MemoryStream()) {
                Serializer.Serialize<DataCarrier>(memoryStream01, dataCarrier);
                memoryStream01.Seek(0, SeekOrigin.Begin);
                var newDataCarrier = Serializer.Deserialize<DataCarrier>(memoryStream01);

                newDataCarrier.ParameterA.CreateUnsecuredString().Should().Be("ABC");
                newDataCarrier.ParameterB.CreateUnsecuredString().Should().Be("DEF");
                newDataCarrier.Result.CreateUnsecuredString().Should().Be("GHI");

                newDataCarrier.Result = newDataCarrier.ParameterA + newDataCarrier.ParameterB;

                using (var memoryStream02 = new MemoryStream()) {
                    Serializer.Serialize<DataCarrier>(memoryStream02, newDataCarrier);
                    memoryStream02.Seek(0, SeekOrigin.Begin);
                    var resultDataCarrier = Serializer.Deserialize<DataCarrier>(memoryStream02);

                    resultDataCarrier.ParameterA.CreateUnsecuredString().Should().Be("ABC");
                    resultDataCarrier.ParameterB.CreateUnsecuredString().Should().Be("DEF");
                    resultDataCarrier.Result.CreateUnsecuredString().Should().Be("ABCDEF");
                }
            }
        }
        public void ComplexWcfParametersConcatForEmptyStringsTest()
        {
            using (var testPhraseOne = (ApplicationSecureString)String.Empty)
            using (var testPhraseTwo = (ApplicationSecureString)(String.Empty.ToCharArray())) {
                var dataCarrier = new DataCarrier() {
                    ParameterA = testPhraseOne,
                    ParameterB = testPhraseTwo
                };

                var dataCarrierResult = WcfService.ComplexParametersConcat(dataCarrier);
                dataCarrierResult.Result.CreateUnsecuredString().Should().Be(String.Empty);
            }
        }
        public void ComplexWcfParametersConcatTest()
        {
            var randomPhrase = Generator.MakeRandomString(78);
            using (var testPhraseOne = (ApplicationSecureString)randomPhrase)
            using (var testPhraseTwo = (ApplicationSecureString)(randomPhrase.ToCharArray())) {
                var dataCarrier = new DataCarrier() {
                    ParameterA = testPhraseOne,
                    ParameterB = testPhraseTwo
                };

                var dataCarrierResult = WcfService.ComplexParametersConcat(dataCarrier);
                dataCarrierResult.Result.CreateUnsecuredString().Should().NotBeEmpty();
                dataCarrierResult.Result.CreateUnsecuredString().Should().Be(dataCarrierResult.ParameterA.CreateUnsecuredString() + dataCarrierResult.ParameterB.CreateUnsecuredString());
            }
        }
        public void ConcatTest()
        {
            var randomPhraseOne = Generator.MakeRandomString(45);
            var randomPhraseTwo = Generator.MakeRandomString(222);
            using (var testPhraseOne = (ApplicationSecureString)randomPhraseOne)
            using (var testPhraseTwo = (ApplicationSecureString)(randomPhraseTwo.ToCharArray())) {
                var dataCarrier = new DataCarrier() {
                    ParameterA = testPhraseOne,
                    ParameterB = testPhraseTwo
                };

                dataCarrier.Result = dataCarrier.ParameterA + dataCarrier.ParameterB;
                dataCarrier.Result.CreateUnsecuredString().Should().NotBeEmpty();
                dataCarrier.Result.CreateUnsecuredString().Should().Be(randomPhraseOne + randomPhraseTwo);
            }
        }
        public void ComplexWcfParametersConcatFor0To1000LengthStringsTest()
        {
            Parallel.ForEach(Enumerable.Range(0, 1000).ToArray(), count => {
                var randomPhraseOne = Generator.MakeRandomString(count + 1);
                var randomPhraseTwo = Generator.MakeRandomString(count);
                using (var testPhraseOne = (ApplicationSecureString)randomPhraseOne)
                using (var testPhraseTwo = (ApplicationSecureString)randomPhraseTwo.ToCharArray()) {
                    var dataCarrier = new DataCarrier() {
                        ParameterA = testPhraseOne,
                        ParameterB = testPhraseTwo
                    };

                    var dataCarrierResult = WcfService.ComplexParametersConcat(dataCarrier);
                    dataCarrierResult.Result.CreateUnsecuredString().Should().NotBeEmpty();
                    dataCarrierResult.Result.CreateUnsecuredString().Should().Be(randomPhraseOne + randomPhraseTwo);
                }
            });
        }
 public DataCarrier ComplexParametersConcat(DataCarrier argRemoteableCarrier)
 {
     argRemoteableCarrier.Result = argRemoteableCarrier.ParameterA + argRemoteableCarrier.ParameterB;
     return argRemoteableCarrier;
 }
 public static DataCarrier ComplexParametersConcat(DataCarrier argRemoteableCarrier)
 {
     var result = TheWcfServer.ComplexParametersConcat(argRemoteableCarrier);
     return result;
 }
 public static DataCarrier ComplexParametersConcat(DataCarrier argRemoteableCarrier)
 {
     return WcfClient.ComplexParametersConcat(argRemoteableCarrier);
 }
 public static DataCarrier ComplexParametersConcat(DataCarrier argRemoteableCarrier)
 {
     return TheRemoteServerInterface.ComplexParametersConcat(argRemoteableCarrier);
 }