public void CreateWithName_NotGeneric_Throws()
        {
            var    descriptor = TaskActivityDescriptor.Create <TestActivity>();
            var    creator    = new ActivityObjectCreator(descriptor);
            Action act        = () => creator.Create(new TypeShortName(typeof(string)));

            act.Should().ThrowExactly <InvalidOperationException>();
        }
        public void Create_GenericDef_Throws()
        {
            var    descriptor = new TaskActivityDescriptor(typeof(TestActivity <>));
            var    creator    = new ActivityObjectCreator(descriptor);
            Action act        = () => creator.Create();

            act.Should().ThrowExactly <InvalidOperationException>();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ActivityObjectCreator"/> class.
        /// </summary>
        /// <param name="descriptor">The activity descriptor. Not null.</param>
        public ActivityObjectCreator(TaskActivityDescriptor descriptor)
        {
            Check.NotNull(descriptor, nameof(descriptor));
            Name    = descriptor.Name;
            Version = descriptor.Version;

            _descriptor = descriptor;
        }
        public void Create_ConcreteType_Succeeds()
        {
            var descriptor = TaskActivityDescriptor.Create <TestActivity>();

            descriptor.Should().NotBeNull();
            descriptor.Method.Should().BeNull();
            descriptor.Type.Should().Be(typeof(TestActivity));
            descriptor.Name.Should().Be(typeof(TestActivity).FullName);
            descriptor.Version.Should().BeEmpty();
        }
        public void Ctor_MethodInfo_DefaultNameVersion()
        {
            var methodInfo = typeof(IMyServce).GetMethod(nameof(IMyServce.SomethingAsync));
            var descriptor = new TaskActivityDescriptor(methodInfo);

            descriptor.Type.Should().BeNull();
            descriptor.Method.Should().BeSameAs(methodInfo);
            descriptor.Name.Should().Be(NameVersionHelper.GetDefaultName(methodInfo));
            descriptor.Version.Should().Be(NameVersionHelper.GetDefaultVersion(methodInfo));
        }
        public void Ctor_Type_DefaultNameVersion(Type type)
        {
            var descriptor = new TaskActivityDescriptor(type);

            descriptor.Should().NotBeNull();
            descriptor.Method.Should().BeNull();
            descriptor.Type.Should().Be(type);
            descriptor.Name.Should().Be(TypeShortName.ToString(type, false));
            descriptor.Version.Should().BeEmpty();
        }
        public void Create_WrapperCreated()
        {
            var          descriptor = TaskActivityDescriptor.Create <TestActivity>();
            var          creator    = new ActivityObjectCreator(descriptor);
            TaskActivity activity   = creator.Create();

            activity.Should().NotBeNull();
            activity.Should().BeOfType <WrapperActivity>()
            .Which.Descriptor.Should().Be(descriptor);
        }
        public void Create_SuppliedNameVersion()
        {
            const string name       = "CustomName";
            const string version    = "CustomVersion";
            var          descriptor = TaskActivityDescriptor.Create <TestActivity>(name, version);

            descriptor.Should().NotBeNull();
            descriptor.Method.Should().BeNull();
            descriptor.Type.Should().Be(typeof(TestActivity));
            descriptor.Name.Should().Be(name);
            descriptor.Version.Should().Be(version);
        }
        public void Ctor_MethodInfo_SuppliedNameVersion()
        {
            const string name       = "CustomName";
            const string version    = "CustomVersion";
            var          methodInfo = typeof(IMyServce).GetMethod(nameof(IMyServce.SomethingAsync));
            var          descriptor = new TaskActivityDescriptor(methodInfo, name, version);

            descriptor.Type.Should().BeNull();
            descriptor.Method.Should().BeSameAs(methodInfo);
            descriptor.Name.Should().Be(name);
            descriptor.Version.Should().Be(version);
        }
        public void Ctor_Type_SuppliedNameVersion(Type type)
        {
            const string name       = "CustomName";
            const string version    = "CustomVersion";
            var          descriptor = new TaskActivityDescriptor(type, name, version);

            descriptor.Should().NotBeNull();
            descriptor.Method.Should().BeNull();
            descriptor.Type.Should().Be(type);
            descriptor.Name.Should().Be(name);
            descriptor.Version.Should().Be(version);
        }
예제 #11
0
        public void Add_Succeeds()
        {
            // arrange
            var activity    = new TaskActivityDescriptor(typeof(TestActivity));
            var descriptors = new TaskHubCollection <TaskActivity>();

            // act
            bool result = descriptors.Add(activity);

            // assert
            result.Should().BeTrue();
            descriptors.Should().HaveCount(1);
            descriptors.Single().Should().Be(activity);
        }
예제 #12
0
        public void Create_ClosedGeneric_NotNull()
        {
            var descriptor = TaskActivityDescriptor.Create <TestActivity <object> >();
            var manager    = new GenericObjectManager <TaskActivity>();

            manager.Add(new ActivityObjectCreator(descriptor));
            TaskActivity activity = manager.GetObject(descriptor.Name, descriptor.Version);

            activity.Should().NotBeNull();
            activity.As <WrapperActivity>().Descriptor.Type.Should().Be(descriptor.Type);

            TaskActivity activity2 = manager.GetObject(typeof(TestActivity <int>).FullName, descriptor.Version);

            activity2.Should().BeNull();
        }
예제 #13
0
        public void Get_Null()
        {
            // arrange
            var activity    = new TaskActivityDescriptor(typeof(TestActivity));
            var descriptors = new TaskHubCollection <TaskActivity>()
            {
                activity,
            };

            // act
            Type actual = descriptors["DNE", string.Empty];

            // assert
            actual.Should().BeNull();
        }
예제 #14
0
        public void Get_ByName()
        {
            // arrange
            var activity    = new TaskActivityDescriptor(typeof(TestActivity));
            var descriptors = new TaskHubCollection <TaskActivity>()
            {
                activity,
            };

            // act
            Type actual = descriptors[activity.Name, activity.Version];

            // assert
            actual.Should().NotBeNull();
            actual.Should().Be(typeof(TestActivity));
        }
예제 #15
0
        public void Count_Multiple()
        {
            // arrange
            var activity    = new TaskActivityDescriptor(typeof(TestActivity));
            var activity2   = new TaskActivityDescriptor(typeof(TestActivity2));
            var descriptors = new TaskHubCollection <TaskActivity>()
            {
                activity,
                activity2,
            };

            // act
            int count = descriptors.Count;

            // assert
            count.Should().Be(2);
        }
        public void AddActivityGenericNamed_Added(string name, string version)
        => RunTest(
            builder => builder.AddActivity <TestActivity>(name, version),
            (original, result) =>
        {
            result.Should().NotBeNull();
            result.Should().BeSameAs(original);
            original.Activities.Should().HaveCount(1);

            TaskActivityDescriptor descriptor = original.Activities.Single();
            descriptor.Type.Should().Be(typeof(TestActivity));
            descriptor.Name.Should().Be(name);
            descriptor.Version.Should().Be(version);

            original.Orchestrations.Should().BeEmpty();
            original.ActivityMiddleware.Should().HaveCount(1);
            original.OrchestrationMiddleware.Should().HaveCount(1);
        });
예제 #17
0
        public void Enumerator_ContainsAll()
        {
            // arrange
            var activity    = new TaskActivityDescriptor(typeof(TestActivity));
            var descriptors = new TaskHubCollection <TaskActivity>()
            {
                activity,
            };

            // act
            IEnumerator enumerator = ((IEnumerable)descriptors).GetEnumerator();

            // assert
            enumerator.Should().NotBeNull();
            enumerator.MoveNext().Should().BeTrue();
            enumerator.Current.Should().Be(activity);
            enumerator.MoveNext().Should().BeFalse();
        }
        public async Task Run_Method_InvokesInner()
        {
            // arrange
            var methodInfo      = typeof(IMyService).GetMethod(nameof(IMyService.MyMethodAsync));
            var descriptor      = new TaskActivityDescriptor(methodInfo);
            var wrapperActivity = new WrapperActivity(descriptor);
            var services        = new ServiceCollection();

            services.AddSingleton <IMyService, MyService>();
            var input = new JArray()
            {
                "some_string",
                10
            };

            // act
            wrapperActivity.Initialize(services.BuildServiceProvider());
            string result = await wrapperActivity.RunAsync(s_taskContext, input.ToString());

            // assert
            string parsed = JsonConvert.DeserializeObject <string>(result);

            parsed.Should().Be("some_string|10");
        }
예제 #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WrapperActivity"/> class.
 /// </summary>
 /// <param name="descriptor">The inner orchestration descriptor.</param>
 public WrapperActivity(TaskActivityDescriptor descriptor)
 {
     Descriptor = Check.NotNull(descriptor, nameof(descriptor));
 }
 public void CreateWithName_GenericDef_ArgNull_Throws()
 {
     var    descriptor = new TaskActivityDescriptor(typeof(TestActivity <>));
     var    creator    = new ActivityObjectCreator(descriptor);
     Action act        = () => creator.Create(default);
        public void Create_AbstractType_Fails()
        {
            Action act = () => TaskActivityDescriptor.Create <TaskActivity>();

            act.Should().ThrowExactly <ArgumentException>();
        }