/// <summary>
        /// Gets a dynamic implementation that simulates the exception response return a list of activity libraries.
        /// </summary>
        /// <returns>Dynamic implementation of type ActivityLibraryRepositoryService.</returns>
        public static ImplementationOfType GetActivityLibrariesExceptionResponseMock(Exception e)
        {
            ImplementationOfType impl = new ImplementationOfType(typeof(ActivityLibraryRepositoryService));
            impl.Register(() => ActivityLibraryRepositoryService.GetActivityLibraries(Argument<ActivityLibraryDC>.Any, true))
                .Execute(delegate { throw e; return null; });

            return impl;
        }
        /// <summary>
        /// Gets a dynamic implementation that simulates the success response return a list of activity libraries.
        /// </summary>
        /// <returns>Dynamic implementation of type ActivityLibraryRepositoryService.</returns>
        public static ImplementationOfType GetActivityLibrariesSuccessResponseMock(List<ActivityLibraryDC> list)
        {
            ImplementationOfType impl = new ImplementationOfType(typeof(ActivityLibraryRepositoryService));
            impl.Register(() => ActivityLibraryRepositoryService.GetActivityLibraries(Argument<ActivityLibraryDC>.Any, true))
                .Execute(delegate { return list; });

            return impl;
        }
 public void ActivityBusinessServiceGetActivityLibrariesWhichActivityLibraryReturnEmptyReply()
 {
     using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
     {
         impl.Register(() => ActivityRepositoryService.GetActivitiesByActivityLibrary(Argument<GetLibraryAndActivitiesDC>.Any, false))
             .Execute(delegate { return null; });
         CWF.DataContracts.GetActivitiesByActivityLibraryNameAndVersionRequestDC request = CreateActivityLibraryGetRequest();
         var reply = ActivityBusinessService.GetActivitiesByActivityLibrary(request, false);
     }
 }
 public void ActivityBusinessServiceCheckActivityExistsWhichReturnEmptyReply()
 {
     using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
     {
         impl.Register(() => ActivityRepositoryService.CheckActivityExists(Argument<StoreActivitiesDC>.Any))
             .Execute(delegate { return new StatusReplyDC(); });
         CWF.DataContracts.StoreActivitiesDC request = CreateStoreActivitiesDC();
         var reply = ActivityBusinessService.CheckActivityExists(request);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Gets a dynamic implementation that simulates empty log settings configuration.
 /// </summary>
 /// <returns>Dynamic implementation of type LogSettingConfigSection for empty log setting.</returns>
 public static ImplementationOfType GetEmptyLogSettingConfigurationMock()
 {
     ImplementationOfType impl = new ImplementationOfType(typeof(LogSettingConfigSection));
     impl.Register(typeof(LogSettingConfigSection).GetMethod(ConfigurationSectionGetSettingsMethod), null, null, null, RegistrationOptions.None,
                     delegate
                     {
                         LogSettingConfigCollection collection = new LogSettingConfigCollection();
                         return collection;
                     });
     return impl;
 }
 public void ActivityBusinessServiceCheckActivityExistsThrowDataAccessException()
 {
     int eventCode = EventCode.DatabaseEvent.Validation.ActivityLibraryNotFound;
     DataAccessException exception = new DataAccessException(eventCode);
     try
     {
         using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
         {
             impl.Register(() => ActivityRepositoryService.CheckActivityExists(Argument<StoreActivitiesDC>.Any))
                 .Execute(delegate { throw exception; return null; });
             CWF.DataContracts.StoreActivitiesDC request = CreateStoreActivitiesDC();
             var reply = ActivityBusinessService.CheckActivityExists(request);
         }
     }
     catch (BusinessException e)
     {
         Assert.AreEqual(eventCode, e.ErrorCode);
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Gets a dynamic implementation that simulates a valid log settings configuration.
        /// </summary>
        /// <returns>Dynamic implementation of type LogSettingConfigSection for valid log setting.</returns>
        public static ImplementationOfType GetValidLogSettingConfigurationMock()
        {
            ImplementationOfType impl = new ImplementationOfType(typeof(LogSettingConfigSection));
            impl.Register(typeof(LogSettingConfigSection).GetMethod(ConfigurationSectionGetSettingsMethod), null, null, null, RegistrationOptions.None,
                            delegate
                            {
                               LogSettingConfigCollection collection = new LogSettingConfigCollection();
                                collection[LogSettingKey.LogWriter] = new LogSettingConfigElement { Key = LogSettingKey.LogWriter, Value = "Microsoft.Support.Workflow.Service.Common.Logging.EventLogWriter,QueryService.Common" };
                                collection[LogSettingKey.LogName] = new LogSettingConfigElement { Key = LogSettingKey.LogName, Value = LogSettingDefaultValue.LogName };
                                collection[LogSettingKey.GetLogLevelKey("default")] = new LogSettingConfigElement { Key = "default", Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.DatabaseError.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey("default"), Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.DataAccessLayerError.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey(EventSource.DataAccessLayerError.ToString().ToLower()), Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.BusinessLayerError.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey(EventSource.BusinessLayerError.ToString().ToLower()), Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.WebServiceLayerError.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey(EventSource.WebServiceLayerError.ToString().ToLower()), Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.LogWriterError.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey(EventSource.LogWriterError.ToString().ToLower()), Value = "2" };
                                collection[LogSettingKey.GetLogLevelKey(EventSource.BusinessLayerValidation.ToString().ToLower())] = new LogSettingConfigElement { Key = LogSettingKey.GetLogLevelKey(EventSource.BusinessLayerValidation.ToString().ToLower()), Value = "-1" };

                                return collection;
                            });
            return impl;
        }
        public void DoNotReturnExecutableIfNotRequestedWhenGetActivityLibrariesIsCalled()
        {
            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                // Simulate 10 items being returned by the database.
                int numberOfMatches = 10;
                DataTable table = CreateValidActivityLibraryResponseMock(numberOfMatches);

                DataReaderMock mockReader = new DataReaderMock(table);
                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Return(mockReader);

                CWF.DataContracts.ActivityLibraryDC request = CreateActivityLibraryGetRequest();
                List<CWF.DataContracts.ActivityLibraryDC> reply = ActivityLibraryRepositoryService.GetActivityLibraries(request, false);
                Assert.IsNotNull(reply);
                Assert.AreEqual(numberOfMatches, reply.Count);

                for (int i = 0; i < numberOfMatches; i++)
                {
                    Assert.AreEqual(table.Rows[i][DataFieldName.ActivityLibrary.AuthGroupName], reply[i].AuthGroupName);
                    Assert.IsNull(reply[i].Executable);
                }
            }
        }
        public void ReturnActivityLibraryReturnedByDatabaseWhenGetActivityLibrariesIsCalled()
        {
            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                DataTable table = CreateValidActivityLibraryResponseMock(1);

                DataReaderMock mockReader = new DataReaderMock(table);
                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Return(mockReader);

                CWF.DataContracts.ActivityLibraryDC request = CreateActivityLibraryGetRequest();
                List<CWF.DataContracts.ActivityLibraryDC> reply = ActivityLibraryRepositoryService.GetActivityLibraries(request, true);
                Assert.IsNotNull(reply);
                Assert.AreEqual(1, reply.Count);
                Assert.AreEqual(table.Rows[0][DataFieldName.ActivityLibrary.AuthGroupName], reply[0].AuthGroupName);
                Assert.IsNotNull(reply[0].Executable);
                Assert.AreEqual(((Byte[])table.Rows[0][DataFieldName.ActivityLibrary.Executable]).Length, reply[0].Executable.Length);
            }
        }
        public void ReturnEmptyItemsListIfDatabaseDoesNotReturnAnyItemsWhenGetActivityLibrariesIsCalled()
        {
            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                DataTable table = new DataTable();
                DataReaderMock mockReader = new DataReaderMock(table);
                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Return(mockReader);

                CWF.DataContracts.ActivityLibraryDC request = CreateActivityLibraryGetRequest();
                List<CWF.DataContracts.ActivityLibraryDC> reply = ActivityLibraryRepositoryService.GetActivityLibraries(request, true);
                Assert.IsNotNull(reply);
                Assert.AreEqual(0, reply.Count);
            }
        }
        public void ReturnDatabaseExceptionWithMatchingErrorCodeReturnedWithSqlExceptionWhenGetActivityLibrariesIsCalled()
        {
            using (LogSettingConfigIsolator.GetValidLogSettingConfigurationMock()) // Simulate valid log setting config in order to let the LogWriterFactory work as expected.
            using (EventLogWriterIsolator.GetNoLoggingEventLogWriterMock()) // Mock event log writer not to write events.
            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                int databaseErrorCode = 50001;
                DataTable table = CreateValidActivityLibraryResponseMock(3);
                DataReaderMock mockReader = new DataReaderMock(table);
                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Execute(
                    delegate
                    {
                        CauseSqlException(databaseErrorCode);
                        return null;
                    });

                try
                {
                    CWF.DataContracts.ActivityLibraryDC request = CreateActivityLibraryGetRequest();
                    List<CWF.DataContracts.ActivityLibraryDC> reply = ActivityLibraryRepositoryService.GetActivityLibraries(request, true);
                }
                catch (DataAccessException e)
                {
                    Assert.IsTrue(e.ErrorCode > 0);
                }
            }
        }
 public void ActivityBusinessServiceSearchActivitiesWhichReturnEmptyReply()
 {
     using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
     {
         impl.Register(() => ActivityRepositoryService.SearchActivities(Argument<ActivitySearchRequestDC>.Any))
             .Execute(delegate { return null; });
         CWF.DataContracts.ActivitySearchRequestDC request = new ActivitySearchRequestDC();
         var reply = ActivityBusinessService.SearchActivities(request);
     }
 }
 public void ActivityBusinessServiceGetActivityLibrariesWhichActivityLibraryThrowDataAccessException()
 {
     int eventCode = EventCode.DatabaseEvent.Validation.ActivityLibraryNotFound;
     DataAccessException exception = new DataAccessException(eventCode);
     try
     {
         using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
         {
             impl.Register(() => ActivityRepositoryService.GetActivitiesByActivityLibrary(Argument<GetLibraryAndActivitiesDC>.Any, false))
                 .Execute(delegate { throw exception; return null; });
             CWF.DataContracts.GetActivitiesByActivityLibraryNameAndVersionRequestDC request = CreateActivityLibraryGetRequest();
             var reply = ActivityBusinessService.GetActivitiesByActivityLibrary(request, false);
         }
     }
     catch (BusinessException e)
     {
         Assert.AreEqual(eventCode, e.ErrorCode);
     }
 }
Ejemplo n.º 14
0
        public void TestFillInMissingStatuses()
        {
            var workflowName = "Test " + Guid.NewGuid().ToString();
            var testWorkflow = CreateTestStoreActivity(workflowName, TestVersionString, false);
            var testDependencyName = "Test Dependency " + Guid.NewGuid().ToString();
            //var testDependency = CreateTestStoreActivity(testDependencyName, TestVersionString, true);

            var request = new StoreLibraryAndActivitiesRequestDC();

            request.StoreActivitiesList = new List<StoreActivitiesDC>();
            request.StoreActivitiesList.Add(testWorkflow);

            request.StoreActivityLibraryDependenciesGroupsRequestDC = new StoreActivityLibraryDependenciesGroupsRequestDC();

            request.StoreActivityLibraryDependenciesGroupsRequestDC.List = new List<StoreActivityLibraryDependenciesGroupsRequestDC>();
            CreateTestDependencies(request.StoreActivityLibraryDependenciesGroupsRequestDC.List);

            var item = request.StoreActivityLibraryDependenciesGroupsRequestDC.List[1];

            item.Status = String.Empty;
            item.Name = testDependencyName;
            item.Version = "1.0.0.0";

            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                var table = new System.Data.DataTable();
                DataReaderMock mockReader;

                table.Columns.Add("AuthGroupId", typeof(int));
                table.Columns.Add("AuthGroupName", typeof(string));
                table.Columns.Add("Category", typeof(Guid));
                table.Columns.Add("CategoryId", typeof(int));
                table.Columns.Add("Description", typeof(string));
                table.Columns.Add("Executable", typeof(byte[]));
                table.Columns.Add("Guid", typeof(Guid));
                table.Columns.Add("HasActivities", typeof(bool));
                table.Columns.Add("Id", typeof(string));
                table.Columns.Add("ImportedBy", typeof(string));
                table.Columns.Add("MetaTags", typeof(string));
                table.Columns.Add("Name", typeof(string));
                table.Columns.Add("Status", typeof(int));
                table.Columns.Add("StatusName", typeof(string));
                table.Columns.Add("VersionNumber", typeof(string));
                table.Columns.Add("FriendlyName", typeof(string));
                table.Columns.Add("ReleaseNotes", typeof(string));

                table.Rows.Add(
                                0,
                                String.Empty,
                                Guid.Empty,
                                0,
                                String.Empty,
                                DBNull.Value,
                                Guid.Empty,
                                false,
                                0,
                                String.Empty,
                                String.Empty,
                                testDependencyName,
                                0,
                                DefaultStatusCodeName,
                                String.Empty,
                                String.Empty,
                                String.Empty
                              );

                mockReader = new DataReaderMock(table);

                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Return(mockReader);

                VersionHelper.GetMissingDependencyStates(request.StoreActivityLibraryDependenciesGroupsRequestDC.List);

                Assert.IsFalse(request
                                 .StoreActivityLibraryDependenciesGroupsRequestDC
                                 .List
                                 .Any(resultItem => string.IsNullOrEmpty(item.Status)),
                                 "All items should have their status property filled in.");

            }
        }
        public void ReturnDatabaseExceptionIfSqlExceptionOccursWhenIsGetMarketplaceAssetDetailsCalled()
        {
            using (LogSettingConfigIsolator.GetValidLogSettingConfigurationMock()) // Simulate valid log setting config in order to let the LogWriterFactory work as expected.
            using (EventLogWriterIsolator.GetNoLoggingEventLogWriterMock()) // Mock event log writer not to write events.
            using (ImplementationOfType impl = new ImplementationOfType(typeof(Database)))
            {
                int databaseErrorCode = 50001;
                impl.Register<Database>(inst => inst.ExecuteReader(Argument<DbCommand>.Any)).Execute(
                    delegate
                    {
                        SqlHelper.CauseSqlException(databaseErrorCode);
                        return null;
                    });

                MarketplaceSearchDetail request = CreateGetMarketplaceAssetDetailsGetRequest();
                MarketplaceAssetDetails reply = MarketplaceRepositoryService.GetMarketplaceAssetDetails(request);
            }
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Gets a dynamic implementation of event log writer that does not really perform any log writing.
 /// </summary>
 /// <returns>Dynamic implementation of type EventLogWriter.</returns>
 public static ImplementationOfType GetNoLoggingEventLogWriterMock()
 {
     ImplementationOfType impl = new ImplementationOfType(typeof(EventLogWriter));
     impl.Register<EventLogWriter>(inst => inst.WriteEvent(Argument<string>.Any, Argument<int>.Any, Argument<EventLogEntryType>.Any, Argument<EventCategory>.Any, Argument<object[]>.Any)).Execute(delegate { return true; });
     return impl;
 }
 public void ActivityBusinessServiceGetActivityLibrariesWhichActivityLibraryReturnReply()
 {
     List<GetLibraryAndActivitiesDC> result = new List<GetLibraryAndActivitiesDC>(){
         new GetLibraryAndActivitiesDC()
         {
             StoreActivitiesList=new List<StoreActivitiesDC>(),
         },
     };
     using (ImplementationOfType impl = new ImplementationOfType(typeof(ActivityRepositoryService)))
     {
         impl.Register(() => ActivityRepositoryService.GetActivitiesByActivityLibrary(Argument<GetLibraryAndActivitiesDC>.Any, false))
             .Execute(delegate { return result; });
         CWF.DataContracts.GetActivitiesByActivityLibraryNameAndVersionRequestDC request = CreateActivityLibraryGetRequest();
         var reply = ActivityBusinessService.GetActivitiesByActivityLibrary(request, false);
         Assert.AreEqual(result[0].StoreActivitiesList, reply.List);
     }
 }