Ejemplo n.º 1
0
        public BreakoutRoomsPermissionLayerProvider(IMediator mediator, IBreakoutRoomRepository breakoutRoomRepository,
                                                    IOptions <DefaultPermissionOptions> options)
        {
            _mediator = mediator;
            _options  = options.Value;

            _fetchBreakoutRoomInternalState =
                Memorized.Func <string, BreakoutRoomInternalState?>(breakoutRoomRepository.Get);
        }
Ejemplo n.º 2
0
        public async Task Func_ExecuteOnce_ShouldInvokeCallbackAndReturnResult()
        {
            const string result = "Hello!";

            // arrange
            Func <int, ValueTask <string> > func = async i => result;

            // act
            var memorized = Memorized.Func(func);

            // assert
            var actual = await memorized(5);

            Assert.Equal(result, actual);
        }
Ejemplo n.º 3
0
        public async Task Func_ExecuteThreeTimesSameParameter_ShouldInvokeCallbackOnceAndReturnEqualResult()
        {
            var counter = 0;

            // arrange
            Func <int, ValueTask <int> > func = async i => ++ counter;
            var memorized = Memorized.Func(func);

            // act
            await memorized(5);
            await memorized(5);

            var actual = await memorized(5);

            // assert
            Assert.Equal(1, actual);
            Assert.Equal(1, counter);
        }
Ejemplo n.º 4
0
        public async Task Func_ChangeParameter_ShouldEvaluateFunctionAgain()
        {
            var counter = 0;

            // arrange
            Func <int, ValueTask <int> > func = async i => ++ counter;
            var memorized = Memorized.Func(func);

            // act
            await memorized(5);
            await memorized(5);

            var actual = await memorized(4);

            // assert

            Assert.Equal(2, actual);
            Assert.Equal(2, counter);
        }