예제 #1
0
        public async Task WHEN_call_reload_on_all_()
        {
            //Arrange
            var mockActiveActor1   = new MockBuilder <ITestActor>();
            var mockActiveActor2   = new MockBuilder <ITestActor>();
            var mockActiveActor3   = new MockBuilder <ITestActor>();
            var mockServiceLocator = new ServiceLocatorMockBuilder().Where_Resolve_returns_sequence(
                new List <ITestActor>
            {
                mockActiveActor1.Object,
                mockActiveActor2.Object,
                mockActiveActor3.Object,
            });

            AddService(mockServiceLocator.Object);
            await Sut.GetOneAsync("1");

            await Sut.GetOneAsync("2");

            //Act
            await Sut.ReloadActiveAsync();

            //Assert
            mockActiveActor1.Mock.Verify(x => x.ReloadAsync(), Times.Once);
            mockActiveActor2.Mock.Verify(x => x.ReloadAsync(), Times.Once);
            mockActiveActor3.Mock.Verify(x => x.ReloadAsync(), Times.Never);
        }
        public async Task WHEN_predicate_is_given_SHOULD_only_remove_and_dispose_actors_that_match()
        {
            //Arrange
            var mockServiceLocator = new ServiceLocatorMockBuilder().Where_Resolve_returns_sequence(
                new List <ITestActor>
            {
                new MockBuilder <ITestActor>().With(x => x.ExtraProperty, "adrian").Object,
                new MockBuilder <ITestActor>().With(x => x.ExtraProperty, "bob").Object,
                new MockBuilder <ITestActor>().With(x => x.ExtraProperty, "cyril").Object,
                new MockBuilder <ITestActor>().With(x => x.ExtraProperty, "domino").Object,
            });

            AddService(mockServiceLocator.Object);
            await Sut.GetOneAsync("1");

            await Sut.GetOneAsync("2");

            await Sut.GetOneAsync("3");

            await Sut.GetOneAsync("4");

            //Act
            await Sut.RemoveAsync(x => x.ExtraProperty.Contains("d"));

            //Assert
            var result = await Sut.GetActiveAsync();

            Assert.That(result.Count, Is.EqualTo(2));
        }