コード例 #1
0
        public void Execute_GivenSomeArgs_Returns_Id()
        {
            //------------Setup for test-------------------------
            var deleteAllTests = new DeleteAllTests();
            var workspaceMock  = new Mock <IWorkspace>();
            //------------Execute Test---------------------------
            var value = new List <string> {
                "Test1", "Test2"
            }.SerializeToJsonStringBuilder();
            var requestArgs = new Dictionary <string, StringBuilder>
            {
                { "excludeList", value }
            };
            var executeResults = deleteAllTests.Execute(requestArgs, workspaceMock.Object);
            var jsonSerializer = new Dev2JsonSerializer();

            Assert.IsNotNull(executeResults);
            var deserializedResults = jsonSerializer.Deserialize <CompressedExecuteMessage>(executeResults);

            //------------Assert Results-------------------------
            Assert.IsNotNull(deserializedResults);
            Assert.IsFalse(deserializedResults.HasError);
            var message = CompressedExecuteMessage.Decompress(deserializedResults.Message.ToString());

            Assert.AreEqual("Test reload succesful", message);
        }
コード例 #2
0
ファイル: FetchTests.cs プロジェクト: tuga1975/Warewolf
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Fetch Tests Service", GlobalConstants.WarewolfInfo);

                values.TryGetValue("resourceID", out StringBuilder resourceIdString);
                if (resourceIdString == null)
                {
                    throw new InvalidDataContractException("resourceID is missing");
                }
                if (!Guid.TryParse(resourceIdString.ToString(), out Guid resourceId))
                {
                    throw new InvalidDataContractException("resourceID is not a valid GUID.");
                }
                var tests   = TestCatalog.Fetch(resourceId);
                var message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(tests));
                message.HasError = false;

                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
                var res = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }
コード例 #3
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {
                var    guidCsv = string.Empty;
                string type    = null;

                values.TryGetValue("GuidCsv", out StringBuilder tmp);
                if (tmp != null)
                {
                    guidCsv = tmp.ToString();
                }
                values.TryGetValue("ResourceType", out tmp);
                if (tmp != null)
                {
                    type = tmp.ToString();
                }

                var resources = ResourceCatalog.Instance.GetResourceList(theWorkspace.ID, new Dictionary <string, string> {
                    { "guidCsv", guidCsv }, { "type", type }
                });

                IList <SerializableResource> resourceList = resources.Select(r => new FindResourceHelper().SerializeResourceForStudio(r, theWorkspace.ID)).ToList();
                var serializer = new Dev2JsonSerializer();
                var message    = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(resourceList));

                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
                throw;
            }
        }
コード例 #4
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var result = new CompressedExecuteMessage {
                HasError = false
            };
            var jsonSerializer = new Dev2JsonSerializer();

            try
            {
                values.TryGetValue("excludeList", out StringBuilder excludeTests);
                var testsToLive = jsonSerializer.Deserialize <List <string> >(excludeTests);
                TestCatalog.DeleteAllTests(testsToLive.Select(a => a.ToUpper()).ToList());
                result.SetMessage("Test reload succesful");
            }
            catch (Exception ex)
            {
                result.HasError = true;
                result.SetMessage("Error reloading tests...");
                Dev2Logger.Error(ex, GlobalConstants.WarewolfError);
            }

            var serializer = new Dev2JsonSerializer();

            return(serializer.SerializeToBuilder(result));
        }
コード例 #5
0
        public void SaveElasticsearchSource_Execute_GivenResourceDefination_ShouldSaveNewSourceReturnResourceDefinationMsg()
        {
            //---------------Set up test pack-------------------
            var serializer = new Dev2JsonSerializer();
            var source     = new ElasticsearchSourceDefinition()
            {
                Id                 = Guid.Empty,
                Name               = "Name",
                HostName           = "HostName",
                Port               = "3679",
                AuthenticationType = AuthenticationType.Anonymous,
                SearchIndex        = "warewolflogs"
            };
            var compressedExecuteMessage = new CompressedExecuteMessage();
            var serializeToJsonString    = source.SerializeToJsonString(new DefaultSerializationBinder());

            compressedExecuteMessage.SetMessage(serializeToJsonString);
            var values = new Dictionary <string, StringBuilder>
            {
                { "ElasticsearchSource", source.SerializeToJsonStringBuilder() }
            };
            var catalog = new Mock <IResourceCatalog>();

            catalog.Setup(resourceCatalog => resourceCatalog.GetResource(It.IsAny <Guid>(), source.Name));
            catalog.Setup(resourceCatalog => resourceCatalog.SaveResource(It.IsAny <Guid>(), It.IsAny <IResource>(), It.IsAny <string>()));
            var elasticsearchSource = new SaveElasticsearchSource(catalog.Object);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var jsonResult = elasticsearchSource.Execute(values, null);
            var result     = serializer.Deserialize <ExecuteMessage>(jsonResult);

            //---------------Test Result -----------------------
            Assert.IsFalse(result.HasError);
            catalog.Verify(resourceCatalog => resourceCatalog.SaveResource(It.IsAny <Guid>(), It.IsAny <IResource>(), It.IsAny <string>()));
        }
コード例 #6
0
ファイル: SaveTestsTest.cs プロジェクト: tuga1975/Warewolf
        public void Execute_GivenResourceDefination_ShouldReturnResourceDefinationMsg()
        {
            //---------------Set up test pack-------------------
            var serializer  = new Dev2JsonSerializer();
            var listOfTests = new List <ServiceTestModelTO>
            {
                new ServiceTestModelTO
                {
                    AuthenticationType = AuthenticationType.Public,
                    Enabled            = true,
                    TestName           = "Test MyWF"
                }
            };
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(listOfTests));
            var values = new Dictionary <string, StringBuilder> {
                { "resourceID", new StringBuilder(Guid.NewGuid().ToString()) }, { "resourcePath", "Home".ToStringBuilder() }
            };
            var saveTests = new SaveTests();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var jsonResult = saveTests.Execute(values, null);
            var result     = serializer.Deserialize <ExecuteMessage>(jsonResult);

            //---------------Test Result -----------------------
            Assert.IsTrue(result.HasError);
            Assert.AreEqual("testDefinition is missing", result.Message.ToString());
        }
コード例 #7
0
        public void SaveTriggers_Execute_GivenResourceDefinition_ShouldReturnResourceDefinitionMsg()
        {
            //---------------Set up test pack-------------------
            var serializer    = new Dev2JsonSerializer();
            var triggerQueues = new List <ITriggerQueue>
            {
                new TriggerQueue
                {
                    QueueName = "Test Queue"
                }
            };
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(triggerQueues));
            var values = new Dictionary <string, StringBuilder> {
                { "resourceID", new StringBuilder(Guid.NewGuid().ToString()) }, { "resourcePath", "Home".ToStringBuilder() }
            };
            var saveTriggers = new SaveTriggers();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var jsonResult = saveTriggers.Execute(values, null);
            var result     = serializer.Deserialize <ExecuteMessage>(jsonResult);

            //---------------Test Result -----------------------
            Assert.IsTrue(result.HasError);
            Assert.AreEqual("triggerDefinitions is missing", result.Message.ToString());
        }
コード例 #8
0
ファイル: FetchTriggerQueues.cs プロジェクト: kapiya/Warewolf
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Fetch Trigger Queue Service", GlobalConstants.WarewolfInfo);

                var triggerQueues = TriggersCatalog.Queues;
                var message       = new CompressedExecuteMessage
                {
                    HasError = false
                };
                message.SetMessage(serializer.Serialize(triggerQueues));
                message.HasError = false;

                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                var msg = new ExecuteMessage
                {
                    HasError = true,
                    Message  = new StringBuilder(err.Message)
                };
                Dev2Logger.Error("Fetch Queue Service Failed: " + err.Message, GlobalConstants.WarewolfError);
                return(serializer.SerializeToBuilder(msg));
            }
        }
コード例 #9
0
        CompressedExecuteMessage GetExplorerItems(Dev2JsonSerializer serializer, bool reloadResourceCatalogue)
        {
            var item    = ServerExplorerRepo.Load(GlobalConstants.ServerWorkspaceID, reloadResourceCatalogue);
            var message = new CompressedExecuteMessage();

            message.SetMessage(serializer.Serialize(item));
            return(message);
        }
コード例 #10
0
        public void HangfireServer_Program_ConnectionString_Exists()
        {
            var args = new Args
            {
                ShowConsole = true,
            };

            var implConfig = SetupHangfireImplementationConfigs(out var mockWriter, out var mockPauseHelper, out var mockExecutionLogPublisher);

            var dbSource = new DbSource
            {
                ConnectionString = "connectionString",
            };
            var compressedExecuteMessage = new CompressedExecuteMessage();
            var serializeToJsonString    = dbSource.SerializeToJsonString(new DefaultSerializationBinder());

            compressedExecuteMessage.SetMessage(serializeToJsonString);

            var mockSerializer = new Mock <IBuilderSerializer>();

            var mockFile            = new Mock <IFile>();
            var mockDirectory       = new Mock <IDirectory>();
            var persistenceSettings = new PersistenceSettings("some path", mockFile.Object, mockDirectory.Object)
            {
                Enable = false,
                PersistenceDataSource = new NamedGuidWithEncryptedPayload
                {
                    Name = "Data Source", Value = Guid.Empty, Payload = serializeToJsonString
                },
            };

            mockSerializer.Setup(o => o.Deserialize <DbSource>(persistenceSettings.PersistenceDataSource.Payload)).Returns(dbSource).Verifiable();
            var mockContext = new HangfireContext(args);

            var mockEventWaitHandle = new Mock <IEventWaitHandle>();

            mockEventWaitHandle.Setup(o => o.New()).Verifiable();
            mockEventWaitHandle.Setup(o => o.WaitOne()).Verifiable();

            var item = new Implementation(mockContext, implConfig, persistenceSettings, mockSerializer.Object, mockEventWaitHandle.Object);

            item.Run();

            mockWriter.Verify(o => o.WriteLine("Starting Hangfire server..."), Times.Once);
            mockExecutionLogPublisher.Verify(o => o.Info("Starting Hangfire server..."), Times.Once);
            mockSerializer.Verify(o => o.Deserialize <DbSource>(persistenceSettings.PersistenceDataSource.Payload), Times.Once);
            mockWriter.Verify(o => o.WriteLine("Hangfire dashboard started..."), Times.Once);
            mockExecutionLogPublisher.Verify(o => o.Info("Hangfire dashboard started..."), Times.Once);
            mockWriter.Verify(o => o.WriteLine("Hangfire server started..."), Times.Once);
            mockExecutionLogPublisher.Verify(o => o.Info("Hangfire server started..."), Times.Once);
            mockPauseHelper.Verify(o => o.Pause(), Times.Never);

            mockEventWaitHandle.Verify(o => o.New(), Times.Never);
            mockEventWaitHandle.Verify(o => o.WaitOne(), Times.Never);
        }
コード例 #11
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                if (values == null)
                {
                    throw new InvalidDataContractException(ErrorResource.NoParameter);
                }
                string serializedSource = null;
                values.TryGetValue("Search", out StringBuilder searchValueSB);
                values.TryGetValue("SearchInput", out StringBuilder searchInputSB);
                if (searchValueSB != null)
                {
                    serializedSource = searchValueSB.ToString();
                }

                if (string.IsNullOrEmpty(serializedSource))
                {
                    var message = new ExecuteMessage();
                    message.HasError = true;
                    message.SetMessage("No Search found");
                    Dev2Logger.Debug("No Search found", GlobalConstants.WarewolfDebug);
                    return(serializer.SerializeToBuilder(message));
                }

                var searchResults = new List <ISearchResult>();

                var searchValue = serializer.Deserialize <ISearch>(serializedSource);
                if (searchValue != null)
                {
                    var searchers = new List <ISearcher>
                    {
                        new ActivitySearcher(ResourceCatalog.Instance),
                        new TestSearcher(ResourceCatalog.Instance, TestCatalog.Instance),
                        new VariableListSearcher(ResourceCatalog.Instance),
                        new ResourceSearcher(ResourceCatalog.Instance)
                    };
                    searchResults = searchValue.GetSearchResults(searchers);
                }

                return(serializer.SerializeToBuilder(searchResults));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
                var res = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }
コード例 #12
0
ファイル: SaveTestsTest.cs プロジェクト: tuga1975/Warewolf
        public void SaveTests_Execute_ExpectName()
        {
            //------------Setup for test--------------------------
            var serializer = new Dev2JsonSerializer();
            var inputs     = new Dictionary <string, StringBuilder>();
            var resourceID = Guid.NewGuid();
            var saveTests  = new SaveTests();

            var listOfTests = new List <ServiceTestModelTO>
            {
                new ServiceTestModelTO
                {
                    AuthenticationType = AuthenticationType.Public,
                    Enabled            = true,
                    TestName           = "Test MyWF"
                }
            };
            var testModels      = new List <IServiceTestModelTO>();
            var testCatalogMock = new Mock <ITestCatalog>();
            var resourceCatalog = new Mock <IResourceCatalog>();

            var resourceMock = new Mock <IResource>();

            resourceMock.SetupGet(resource => resource.ResourceID).Returns(resourceID);
            resourceMock.Setup(resource => resource.GetResourcePath(It.IsAny <Guid>())).Returns("Home");
            resourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceID)).Returns(resourceMock.Object);
            var ws    = new Mock <IWorkspace>();
            var resID = Guid.Empty;

            testCatalogMock.Setup(a => a.SaveTests(It.IsAny <Guid>(), It.IsAny <List <IServiceTestModelTO> >())).Callback((Guid id, List <IServiceTestModelTO> testModelTos) =>
            {
                resID      = id;
                testModels = testModelTos;
            }).Verifiable();


            inputs.Add("resourceID", new StringBuilder(resourceID.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(listOfTests));
            inputs.Add("testDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "Home".ToStringBuilder());
            saveTests.TestCatalog     = testCatalogMock.Object;
            saveTests.ResourceCatalog = resourceCatalog.Object;
            //------------Execute Test---------------------------
            saveTests.Execute(inputs, ws.Object);
            //------------Assert Results-------------------------
            testCatalogMock.Verify(a => a.SaveTests(It.IsAny <Guid>(), It.IsAny <List <IServiceTestModelTO> >()));
            Assert.AreEqual(listOfTests.Count, testModels.Count);
            Assert.AreEqual(listOfTests[0].TestName, testModels[0].TestName);
            Assert.AreEqual(resourceID, resID);
        }
コード例 #13
0
        public void SaveTriggers_Execute_ExpectName()
        {
            //------------Setup for test--------------------------
            var serializer   = new Dev2JsonSerializer();
            var inputs       = new Dictionary <string, StringBuilder>();
            var resourceId   = Guid.NewGuid();
            var saveTriggers = new SaveTriggers();

            var triggerQueues = new List <ITriggerQueue>
            {
                new TriggerQueue
                {
                    QueueName = "Test Queue"
                }
            };
            var emptyTriggerQueues  = new List <ITriggerQueue>();
            var mockTriggersCatalog = new Mock <ITriggersCatalog>();
            var mockResourceCatalog = new Mock <IResourceCatalog>();

            var mockResource = new Mock <IResource>();

            mockResource.SetupGet(resource => resource.ResourceID).Returns(resourceId);
            mockResource.Setup(resource => resource.GetResourcePath(It.IsAny <Guid>())).Returns("somePath");
            mockResourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceId)).Returns(mockResource.Object);
            var ws    = new Mock <IWorkspace>();
            var resID = Guid.Empty;

            mockTriggersCatalog.Setup(a => a.SaveTriggers(It.IsAny <Guid>(), It.IsAny <List <ITriggerQueue> >())).Callback((Guid id, List <ITriggerQueue> queues) =>
            {
                resID = id;
                emptyTriggerQueues = queues;
            }).Verifiable();

            inputs.Add("resourceID", new StringBuilder(resourceId.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(triggerQueues));
            inputs.Add("triggerDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "somePath".ToStringBuilder());
            saveTriggers.TriggersCatalog = mockTriggersCatalog.Object;
            saveTriggers.ResourceCatalog = mockResourceCatalog.Object;
            //------------Execute Test---------------------------
            saveTriggers.Execute(inputs, ws.Object);
            //------------Assert Results-------------------------
            mockTriggersCatalog.Verify(a => a.SaveTriggers(It.IsAny <Guid>(), It.IsAny <List <ITriggerQueue> >()));
            Assert.AreEqual(triggerQueues.Count, emptyTriggerQueues.Count);
            Assert.AreEqual(triggerQueues[0].QueueName, emptyTriggerQueues[0].QueueName);
            Assert.AreEqual(resourceId, resID);
        }
コード例 #14
0
ファイル: SaveTestsTest.cs プロジェクト: tuga1975/Warewolf
        public void Execute_GivenResourceMoved_ShouldSaveTests()
        {
            //------------Setup for test--------------------------
            var serializer = new Dev2JsonSerializer();
            var inputs     = new Dictionary <string, StringBuilder>();
            var resourceID = Guid.NewGuid();
            var saveTests  = new SaveTests();

            var listOfTests = new List <ServiceTestModelTO>
            {
                new ServiceTestModelTO
                {
                    AuthenticationType = AuthenticationType.Public,
                    Enabled            = true,
                    TestName           = "Test MyWF"
                }
            };
            var resourceMock = new Mock <IResource>();

            resourceMock.SetupGet(resource => resource.ResourceID).Returns(resourceID);
            resourceMock.Setup(resource => resource.GetResourcePath(It.IsAny <Guid>())).Returns("Home");

            var testCatalogMock = new Mock <ITestCatalog>();
            var resourceCatalog = new Mock <IResourceCatalog>();

            resourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceID)).Returns(resourceMock.Object);
            testCatalogMock.Setup(a => a.SaveTests(It.IsAny <Guid>(), It.IsAny <List <IServiceTestModelTO> >())).Verifiable();
            var ws = new Mock <IWorkspace>();

            inputs.Add("resourceID", new StringBuilder(resourceID.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(listOfTests));
            inputs.Add("testDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "AnathorPath".ToStringBuilder());
            saveTests.TestCatalog     = testCatalogMock.Object;
            saveTests.ResourceCatalog = resourceCatalog.Object;
            var stringBuilder = saveTests.Execute(inputs, ws.Object);
            //---------------Assert Precondition----------------
            var msg            = serializer.Deserialize <ExecuteMessage>(stringBuilder);
            var testSaveResult = serializer.Deserialize <TestSaveResult>(msg.Message);

            Assert.AreEqual(SaveResult.ResourceUpdated, testSaveResult.Result);
            Assert.AreEqual("Resource AnathorPath has changed to Home. Tests have been saved for this resource.", testSaveResult.Message);
            //------------Execute Test---------------------------
            //------------Assert Results-------------------------
            testCatalogMock.Verify(a => a.SaveTests(It.IsAny <Guid>(), It.IsAny <List <IServiceTestModelTO> >()), Times.Once);
        }
コード例 #15
0
        public TestSaveResult SaveTests(IResourceModel resource, List <IServiceTestModelTO> tests)
        {
            var comsController = GetCommunicationController("SaveTests");
            Dev2JsonSerializer       serializer = new Dev2JsonSerializer();
            CompressedExecuteMessage message    = new CompressedExecuteMessage();

            message.SetMessage(serializer.Serialize(tests));
            comsController.AddPayloadArgument("resourceID", resource.ID.ToString());
            comsController.AddPayloadArgument("resourcePath", string.IsNullOrEmpty(resource.Category) ? resource.ResourceName : resource.Category);
            comsController.AddPayloadArgument("testDefinitions", serializer.SerializeToBuilder(message));

            var result = comsController.ExecuteCommand <ExecuteMessage>(_server.Connection, GlobalConstants.ServerWorkspaceID);
            var res    = serializer.Deserialize <TestSaveResult>(result?.Message);

            return(res);
        }
コード例 #16
0
        private ExecuteMessage SaveResource(IServer targetEnvironment, StringBuilder resourceDefinition, Guid workspaceId, string savePath)
        {
            var comsController = GetCommunicationController("SaveResourceService");
            CompressedExecuteMessage message = new CompressedExecuteMessage();

            message.SetMessage(resourceDefinition.ToString());
            Dev2JsonSerializer ser = new Dev2JsonSerializer();

            comsController.AddPayloadArgument("savePath", savePath);
            comsController.AddPayloadArgument("ResourceXml", ser.SerializeToBuilder(message));
            comsController.AddPayloadArgument("WorkspaceID", workspaceId.ToString());

            var con    = targetEnvironment.Connection;
            var result = comsController.ExecuteCommand <ExecuteMessage>(con, con.WorkspaceID);

            return(result);
        }
コード例 #17
0
        public void SaveTriggers_Execute_GivenResourceMoved_ShouldSaveTriggers()
        {
            //------------Setup for test--------------------------
            var serializer   = new Dev2JsonSerializer();
            var inputs       = new Dictionary <string, StringBuilder>();
            var resourceId   = Guid.NewGuid();
            var saveTriggers = new SaveTriggers();

            var triggerQueues = new List <ITriggerQueue>
            {
                new TriggerQueue
                {
                    QueueName = "Test Queue"
                }
            };
            var mockResource = new Mock <IResource>();

            mockResource.SetupGet(resource => resource.ResourceID).Returns(resourceId);
            mockResource.Setup(resource => resource.GetResourcePath(It.IsAny <Guid>())).Returns("somePath");

            var mockTriggersCatalog = new Mock <ITriggersCatalog>();
            var mockResourceCatalog = new Mock <IResourceCatalog>();

            mockResourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceId)).Returns(mockResource.Object);
            mockTriggersCatalog.Setup(a => a.SaveTriggers(It.IsAny <Guid>(), It.IsAny <List <ITriggerQueue> >())).Verifiable();
            var ws = new Mock <IWorkspace>();

            inputs.Add("resourceID", new StringBuilder(resourceId.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(triggerQueues));
            inputs.Add("triggerDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "otherPath".ToStringBuilder());
            saveTriggers.TriggersCatalog = mockTriggersCatalog.Object;
            saveTriggers.ResourceCatalog = mockResourceCatalog.Object;
            var stringBuilder = saveTriggers.Execute(inputs, ws.Object);
            //---------------Assert Precondition----------------
            var msg = serializer.Deserialize <ExecuteMessage>(stringBuilder);

            Assert.IsFalse(msg.HasError);
            Assert.IsTrue(msg.Message.Contains("Resource otherPath has changed to somePath. Triggers have been saved for this resource."));
            //------------Execute Test---------------------------
            //------------Assert Results-------------------------
            mockTriggersCatalog.Verify(a => a.SaveTriggers(It.IsAny <Guid>(), It.IsAny <List <ITriggerQueue> >()), Times.Once);
        }
コード例 #18
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            Dev2Logger.Info("Fetch Duplicate ResourcesError", GlobalConstants.WarewolfInfo);
            var serializer = new Dev2JsonSerializer();

            try
            {
                var item    = ServerExplorerRepo.LoadDuplicate();
                var message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(item));
                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception e)
            {
                Dev2Logger.Info("Fetch Duplicate ResourcesError", e, GlobalConstants.WarewolfInfo);
                IExplorerRepositoryResult error = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
                return(serializer.SerializeToBuilder(error));
            }
        }
コード例 #19
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            Dev2Logger.Info("Fetch Explorer Items");

            var serializer = new Dev2JsonSerializer();

            try
            {
                if (values == null)
                {
                    throw new ArgumentNullException(nameof(values));
                }
                StringBuilder tmp;
                values.TryGetValue("ReloadResourceCatalogue", out tmp);
                string reloadResourceCatalogueString = "";
                if (tmp != null)
                {
                    reloadResourceCatalogueString = tmp.ToString();
                }
                bool reloadResourceCatalogue = false;
                if (!string.IsNullOrEmpty(reloadResourceCatalogueString))
                {
                    if (!bool.TryParse(reloadResourceCatalogueString, out reloadResourceCatalogue))
                    {
                        reloadResourceCatalogue = false;
                    }
                }
                if (reloadResourceCatalogue)
                {
                    ResourceCatalog.Instance.Reload();
                }
                var item = ServerExplorerRepo.Load(GlobalConstants.ServerWorkspaceID, reloadResourceCatalogue);
                CompressedExecuteMessage message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(item));
                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception e)
            {
                Dev2Logger.Info("Fetch Explorer Items Error", e);
                IExplorerRepositoryResult error = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
                return(serializer.SerializeToBuilder(error));
            }
        }
コード例 #20
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Delete Test Service");

                StringBuilder resourceIdString;
                values.TryGetValue("resourceID", out resourceIdString);
                if (resourceIdString == null)
                {
                    throw new InvalidDataContractException("resourceID is missing");
                }
                Guid resourceId;
                if (!Guid.TryParse(resourceIdString.ToString(), out resourceId))
                {
                    throw new InvalidDataContractException("resourceID is not a valid GUID.");
                }
                StringBuilder testName;
                values.TryGetValue("testName", out testName);
                if (string.IsNullOrEmpty(testName?.ToString()))
                {
                    throw new InvalidDataContractException("testName is missing");
                }

                TestCatalog.DeleteTest(resourceId, testName.ToString());
                CompressedExecuteMessage message = new CompressedExecuteMessage {
                    HasError = false
                };
                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err);
                var res = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }
コード例 #21
0
ファイル: SaveTestsTest.cs プロジェクト: tuga1975/Warewolf
        public void Execute_GivenNullResource_ShouldReturnResourceDeletedMsg()
        {
            //------------Setup for test--------------------------
            var serializer = new Dev2JsonSerializer();
            var inputs     = new Dictionary <string, StringBuilder>();
            var resourceID = Guid.NewGuid();
            var saveTests  = new SaveTests();

            var listOfTests = new List <ServiceTestModelTO>
            {
                new ServiceTestModelTO
                {
                    AuthenticationType = AuthenticationType.Public,
                    Enabled            = true,
                    TestName           = "Test MyWF"
                }
            };
            var testCatalogMock = new Mock <ITestCatalog>();
            var resourceCatalog = new Mock <IResourceCatalog>();

            resourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceID)).Returns(default(IResource));
            var ws = new Mock <IWorkspace>();

            inputs.Add("resourceID", new StringBuilder(resourceID.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(listOfTests));
            inputs.Add("testDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "Home".ToStringBuilder());
            saveTests.TestCatalog     = testCatalogMock.Object;
            saveTests.ResourceCatalog = resourceCatalog.Object;
            //------------Execute Test---------------------------
            var stringBuilder = saveTests.Execute(inputs, ws.Object);
            //------------Assert Results-------------------------
            var msg            = serializer.Deserialize <ExecuteMessage>(stringBuilder);
            var testSaveResult = serializer.Deserialize <TestSaveResult>(msg.Message);

            Assert.AreEqual(SaveResult.ResourceDeleted, testSaveResult.Result);
            Assert.AreEqual("Resource Home has been deleted. No Tests can be saved for this resource.", testSaveResult.Message);
        }
コード例 #22
0
        public void Execute_GivenResourceDefination_GivenExising_ShouldReturnResourceDefinationMsg()
        {
            //---------------Set up test pack-------------------
            var serializer = new Dev2JsonSerializer();
            var source     = new ComPluginSourceDefinition()
            {
                Id           = Guid.Empty,
                ResourceName = "Name",
                ClsId        = Guid.NewGuid().ToString(),
                ResourcePath = Environment.CurrentDirectory,
                SelectedDll  = new DllListing()
                {
                    Name = "k"
                }
            };
            var compressedExecuteMessage = new CompressedExecuteMessage();
            var serializeToJsonString    = source.SerializeToJsonString(new DefaultSerializationBinder());

            compressedExecuteMessage.SetMessage(serializeToJsonString);
            var values = new Dictionary <string, StringBuilder>
            {
                { "ComPluginSource", source.SerializeToJsonStringBuilder() }
            };
            var catalog         = new Mock <IResourceCatalog>();
            var comPluginSource = new ComPluginSource();

            catalog.Setup(resourceCatalog => resourceCatalog.GetResource(It.IsAny <Guid>(), source.ResourceName, It.IsAny <string>(), It.IsAny <string>())).Returns(comPluginSource);
            catalog.Setup(resourceCatalog => resourceCatalog.SaveResource(It.IsAny <Guid>(), comPluginSource, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()));
            var saveComPluginSource = new SaveComPluginSource(catalog.Object);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            StringBuilder jsonResult = saveComPluginSource.Execute(values, null);
            var           result     = serializer.Deserialize <ExecuteMessage>(jsonResult);

            //---------------Test Result -----------------------
            Assert.IsFalse(result.HasError);
            catalog.Verify(resourceCatalog => resourceCatalog.GetResource(It.IsAny <Guid>(), source.ResourceName, It.IsAny <string>(), It.IsAny <string>()));
            catalog.Verify(resourceCatalog => resourceCatalog.SaveResource(It.IsAny <Guid>(), comPluginSource, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()));
        }
コード例 #23
0
ファイル: ReloadTests.cs プロジェクト: Warewolf-ESB/Warewolf
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var result = new CompressedExecuteMessage {
                HasError = false
            };

            try
            {
                TestCatalog.Load();
                result.SetMessage("Test reload succesful");
            }
            catch (Exception ex)
            {
                result.HasError = true;
                result.SetMessage("Error reloading tests...");
                Dev2Logger.Error(ex, GlobalConstants.WarewolfError);
            }

            var serializer = new Dev2JsonSerializer();

            return(serializer.SerializeToBuilder(result));
        }
コード例 #24
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            Dev2JsonSerializer serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Fetch Tests for deploy Service");

                StringBuilder resourceIdString;
                values.TryGetValue("resourceID", out resourceIdString);
                if (resourceIdString == null)
                {
                    throw new InvalidDataContractException("resourceID is missing");
                }
                Guid resourceId;
                if (!Guid.TryParse(resourceIdString.ToString(), out resourceId))
                {
                    throw new InvalidDataContractException("resourceID is not a valid GUID.");
                }
                var tests = TestCatalog.Fetch(resourceId);
                foreach (var serviceTestModelTO in tests.Where(to => !string.IsNullOrEmpty(to.Password)))
                {
                    serviceTestModelTO.Password = SecurityEncryption.Encrypt(serviceTestModelTO.Password);
                }
                CompressedExecuteMessage message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(tests));
                message.HasError = false;

                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err);
                var res = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }
コード例 #25
0
ファイル: ReloadAllTests.cs プロジェクト: kapiya/Warewolf
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Reload All Tests", GlobalConstants.WarewolfInfo);
                TestCatalog.ReloadAllTests();
                var message = new CompressedExecuteMessage {
                    HasError = false
                };
                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err, GlobalConstants.WarewolfError);
                var res = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }
コード例 #26
0
        public void SaveTriggers_Execute_GivenNullResource_ShouldReturnResourceDeletedMsg()
        {
            //------------Setup for test--------------------------
            var serializer   = new Dev2JsonSerializer();
            var inputs       = new Dictionary <string, StringBuilder>();
            var resourceId   = Guid.NewGuid();
            var saveTriggers = new SaveTriggers();

            var triggerQueues = new List <ITriggerQueue>
            {
                new TriggerQueue
                {
                    QueueName = "Test Queue"
                }
            };
            var mockTriggersCatalog = new Mock <ITriggersCatalog>();
            var mockResourceCatalog = new Mock <IResourceCatalog>();

            mockResourceCatalog.Setup(catalog => catalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceId)).Returns(default(IResource));
            var ws = new Mock <IWorkspace>();

            inputs.Add("resourceID", new StringBuilder(resourceId.ToString()));
            var compressedExecuteMessage = new CompressedExecuteMessage();

            compressedExecuteMessage.SetMessage(serializer.Serialize(triggerQueues));
            inputs.Add("triggerDefinitions", serializer.SerializeToBuilder(compressedExecuteMessage));
            inputs.Add("resourcePath", "somePath".ToStringBuilder());
            saveTriggers.TriggersCatalog = mockTriggersCatalog.Object;
            saveTriggers.ResourceCatalog = mockResourceCatalog.Object;
            //------------Execute Test---------------------------
            var stringBuilder = saveTriggers.Execute(inputs, ws.Object);
            //------------Assert Results-------------------------
            var msg = serializer.Deserialize <ExecuteMessage>(stringBuilder);

            Assert.IsFalse(msg.HasError);
            Assert.IsTrue(msg.Message.Contains("Resource somePath has been deleted. No Triggers can be saved for this resource."));
        }
コード例 #27
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Fetch Triggers for Deploy Service", GlobalConstants.WarewolfInfo);

                values.TryGetValue("resourceID", out var resourceIdString);
                if (resourceIdString == null)
                {
                    throw new InvalidDataContractException("resourceID is missing");
                }
                if (!Guid.TryParse(resourceIdString.ToString(), out var resourceId))
                {
                    throw new InvalidDataContractException("resourceID is not a valid GUID.");
                }

                var triggerQueues = TriggersCatalog.LoadQueuesByResourceId(resourceId);
                var message       = new CompressedExecuteMessage
                {
                    HasError = false
                };
                message.SetMessage(serializer.Serialize(triggerQueues));

                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception err)
            {
                Dev2Logger.Error("Fetch Triggers For Deploy Failed: " + err.Message, GlobalConstants.WarewolfError);
                var msg = new CompressedExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(msg));
            }
        }
コード例 #28
0
        private IEnumerable <DeployResult> DeployResource(Guid resourceId, StringBuilder roles, Dev2JsonSerializer serializer, IHubProxy proxy, bool doTestDeploy)
        {
            var toReturn        = new List <DeployResult>();
            var savePath        = new StringBuilder();
            var resourceContent = ResourceCatalog.GetResourceContents(GlobalConstants.ServerWorkspaceID, resourceId);
            var resource        = ResourceCatalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceId);

            if (!resource.IsService)
            {
                var fetchResourceService = new FetchResourceDefinition();
                resourceContent = fetchResourceService.DecryptAllPasswords(resourceContent);
            }
            savePath.Append(resource.GetSavePath());

            var esbExecuteRequest = new EsbExecuteRequest {
                ServiceName = "DeployResourceService"
            };

            esbExecuteRequest.AddArgument("savePath", savePath);
            esbExecuteRequest.AddArgument("ResourceDefinition", resourceContent);
            esbExecuteRequest.AddArgument("Roles", roles);
            Envelope envelope = new Envelope
            {
                Content = serializer.SerializeToBuilder(esbExecuteRequest).ToString(),
                PartID  = 0,
                Type    = typeof(Envelope)
            };
            var messageId = Guid.NewGuid();

            proxy.Invoke <Receipt>("ExecuteCommand", envelope, true, Guid.Empty, Guid.Empty, messageId).Wait();
            Task <string> fragmentInvoke = proxy.Invoke <string>("FetchExecutePayloadFragment", new FutureReceipt {
                PartID = 0, RequestID = messageId
            });
            var fragmentInvokeResult = fragmentInvoke.Result;
            var execResult           = serializer.Deserialize <ExecuteMessage>(fragmentInvokeResult) ?? new ExecuteMessage {
                HasError = true, Message = new StringBuilder("Deploy Fialed")
            };

            toReturn.Add(new DeployResult(execResult, resource.ResourceName));

            if (doTestDeploy)
            {
                var testsToDeploy = TestCatalog.Fetch(resourceId);
                CompressedExecuteMessage message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(testsToDeploy));
                var testDeployRequest = new EsbExecuteRequest {
                    ServiceName = "SaveTests"
                };
                testDeployRequest.AddArgument("resourceID", resourceId.ToString().ToStringBuilder());
                testDeployRequest.AddArgument("resourcePath", savePath);
                testDeployRequest.AddArgument("testDefinitions", serializer.SerializeToBuilder(message));
                Envelope deployEnvelope = new Envelope
                {
                    Content = serializer.SerializeToBuilder(testDeployRequest).ToString(),
                    PartID  = 0,
                    Type    = typeof(Envelope)
                };
                var deployMessageId = Guid.NewGuid();
                proxy.Invoke <Receipt>("ExecuteCommand", deployEnvelope, true, Guid.Empty, Guid.Empty, deployMessageId).Wait();
                Task <string> deployFragmentInvoke = proxy.Invoke <string>("FetchExecutePayloadFragment", new FutureReceipt {
                    PartID = 0, RequestID = deployMessageId
                });
                var deployFragmentInvokeResult = deployFragmentInvoke.Result;
                var deployExecResult           = serializer.Deserialize <ExecuteMessage>(deployFragmentInvokeResult) ?? new ExecuteMessage {
                    HasError = true, Message = new StringBuilder("Deploy Fialed")
                };
                toReturn.Add(new DeployResult(deployExecResult, $"{resource.ResourceName} Tests"));
            }
            return(toReturn);
        }