Example #1
0
        public void SRMRunClient()
        {
            Assert.Inconclusive("Disabled because this test requires web service to be running and will otherwise fail");

            // Don't use global variables for exe and config file as those files will get deleted at the end of the test
            string exePath = Path.GetFullPath(@"..\..\..\SampleClientAndService\Client\bin\debug\client.exe");
            string libPath = Path.GetFullPath(@"..\..\..\SampleClientAndService\Client\bin\debug\ClientProxies.dll");

            using (ScenarioRunManager mgr = new ScenarioRunManager())
            {
                mgr.Initialize(exePath);
                string logFileName = null;
                try
                {
                    logFileName = mgr.SetupForTrace();
                    WcfUnitConfiguration config = new WcfUnitConfiguration();
                    mgr.Run(config);
                    Assert.IsTrue(File.Exists(logFileName));
                    Assert.AreEqual <int>(39, config.soapActions.soapAction.Length);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/Add", config.soapActions.soapAction[0].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/Add2", config.soapActions.soapAction[1].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/Add3", config.soapActions.soapAction[2].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/WrappedAdd", config.soapActions.soapAction[3].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/WrappednoCustomNamesAdd", config.soapActions.soapAction[4].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/WrappedMessageWithHeaderAndBodyNamespaceOverrides", config.soapActions.soapAction[5].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/UnwrappedAdd", config.soapActions.soapAction[6].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/NoParameters", config.soapActions.soapAction[7].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/RefParameter", config.soapActions.soapAction[8].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/OutParameter", config.soapActions.soapAction[9].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IArithmetic/MixedDirectionParameters", config.soapActions.soapAction[10].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/ICollections/ProcessCollection", config.soapActions.soapAction[11].action);
                    Assert.AreEqual <string>("http://tempuri.org/ICustomContracts/Overload", config.soapActions.soapAction[12].action);
                    Assert.AreEqual <string>("http://tempuri.org/ICustomContracts/Overload2", config.soapActions.soapAction[13].action);
                    Assert.AreEqual <string>("http://tempuri.org/ICustomContracts/Hidden", config.soapActions.soapAction[14].action);
                    Assert.AreEqual <string>("http://tempuri.org/ICustomContracts2/Contract2Method", config.soapActions.soapAction[15].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedStreamOperation", config.soapActions.soapAction[16].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedMemoryStreamOperation", config.soapActions.soapAction[17].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedStreamOperation", config.soapActions.soapAction[18].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedMemoryStreamOperation", config.soapActions.soapAction[19].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedWithNonStreamParametersOperation", config.soapActions.soapAction[20].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedUnwrappedMessageWithMemoryStream", config.soapActions.soapAction[21].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedUnwrappedMessageWithStream", config.soapActions.soapAction[22].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedWrappedMessageWithMemoryStream", config.soapActions.soapAction[23].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IBufferedStreamService/BufferedWrappedMessageWithStream", config.soapActions.soapAction[24].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedUnwrappedMessageWithMemoryStream", config.soapActions.soapAction[25].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedUnwrappedMessageWithStream", config.soapActions.soapAction[26].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedWrappedMessageWithMemoryStream", config.soapActions.soapAction[27].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IStreamedStreamService/StreamedWrappedMessageWithStream", config.soapActions.soapAction[28].action);
                    Assert.AreEqual <string>("http://contoso.com/service/test/IShapeService/DoSomething", config.soapActions.soapAction[29].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/ProcessSimpleAsmxRequestWrapped", config.soapActions.soapAction[30].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/ProcessSimpleAsmxRequestBare", config.soapActions.soapAction[31].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/ProcessMultipleParametersWrapped", config.soapActions.soapAction[32].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/WithNullableInt", config.soapActions.soapAction[33].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/SimpleTypes", config.soapActions.soapAction[34].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/ScalarArray", config.soapActions.soapAction[35].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/XmlRequestMethod", config.soapActions.soapAction[36].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/CollectionMethod", config.soapActions.soapAction[37].action);
                    Assert.AreEqual <string>("http://contoso.com/asmxservice/test/ProcessShape", config.soapActions.soapAction[38].action);

                    foreach (SoapActionType sat in config.soapActions.soapAction)
                    {
                        Assert.IsTrue(sat.Selected);
                    }

                    Assert.Inconclusive("The rest of this test is currently disabled because the functionality to autodiscover the referenced assemblies has been temporarily removed to make sure the user specifies the proxy assembly, because the tool cannot yet cope with proxy-less clients");
                    List <string> assemblies = new List <string>();
                    foreach (AssemblyType a in config.assembly)
                    {
                        assemblies.Add(a.fileName);
                    }

                    Assert.AreEqual <int>(2, assemblies.Count);
                    Assert.IsTrue(assemblies.Contains(exePath));
                    Assert.IsTrue(assemblies.Contains(libPath));
                }
                finally
                {
                    mgr.RestoreOriginalConfiguration();
                    if (logFileName != null)
                    {
                        File.Delete(logFileName);
                    }
                }
            }
        }