Ejemplo n.º 1
0
        private async Task Run()
        {
            Debug.WriteLine("--------------------FbmBackgroundTask.Run(): Start");

            //IMutex mutex = new RefreshTokenMutex();
            IMutexService        mutex         = new MutexService();
            MutexOperationResult mutexAcquired = null;
            MutexOperationResult mutexReleased = null;

            try
            {
                Debug.WriteLine("--------------------FbmBackgroundTask.Run(): enter mutex");
                mutexAcquired = await mutex.AcquireAsync(5000);

                Debug.WriteLine("--------------------FbmBackgroundTask.Run():" + mutexAcquired.ToString());

                if ((mutexAcquired.Result & MutexOperationResultEnum.Acquired) != MutexOperationResultEnum.NoValue)
                {
                    // Do work here
                    for (var i = 0; i < 10; i++)
                    {
                        await Task.Delay(1000);

                        Debug.WriteLine("--------------------FbmBackgroundTask.Run():" + "doing some work");
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("--------------------FbmBackgroundTask.Run(): exception {0}", ex.ToString());
            }
            finally
            {
                if (mutexAcquired != null && mutexAcquired.ResultIs(MutexOperationResultEnum.Acquired))
                {
                    mutexReleased = await mutex.ReleaseAsync(mutexAcquired.AcquisitionKey);

                    Debug.WriteLine("--------------------FbmBackgroundTask.Run(): " + mutexReleased.ToString());

                    if (mutexReleased == null || !mutexReleased.ResultIs(MutexOperationResultEnum.Released))
                    {
                        var mutexCleared = await mutex.ClearAsync();

                        Debug.WriteLine("--------------------FbmBackgroundTask.Run(): " + "Clear: " + mutexCleared.ToString());
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <IMutexRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult <Mutex>(null));
            var service = new MutexService(mock.LoggerMock.Object,
                                           mock.RepositoryMock.Object,
                                           mock.ModelValidatorMockFactory.MutexModelValidatorMock.Object,
                                           mock.BOLMapperMockFactory.BOLMutexMapperMock,
                                           mock.DALMapperMockFactory.DALMutexMapperMock);

            ApiMutexResponseModel response = await service.Get(default(string));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <string>()));
        }
Ejemplo n.º 3
0
        public async void Create()
        {
            var mock  = new ServiceMockFacade <IMutexRepository>();
            var model = new ApiMutexRequestModel();

            mock.RepositoryMock.Setup(x => x.Create(It.IsAny <Mutex>())).Returns(Task.FromResult(new Mutex()));
            var service = new MutexService(mock.LoggerMock.Object,
                                           mock.RepositoryMock.Object,
                                           mock.ModelValidatorMockFactory.MutexModelValidatorMock.Object,
                                           mock.BOLMapperMockFactory.BOLMutexMapperMock,
                                           mock.DALMapperMockFactory.DALMutexMapperMock);

            CreateResponse <ApiMutexResponseModel> response = await service.Create(model);

            response.Should().NotBeNull();
            mock.ModelValidatorMockFactory.MutexModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiMutexRequestModel>()));
            mock.RepositoryMock.Verify(x => x.Create(It.IsAny <Mutex>()));
        }
Ejemplo n.º 4
0
        public async void All()
        {
            var mock    = new ServiceMockFacade <IMutexRepository>();
            var records = new List <Mutex>();

            records.Add(new Mutex());
            mock.RepositoryMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(records));
            var service = new MutexService(mock.LoggerMock.Object,
                                           mock.RepositoryMock.Object,
                                           mock.ModelValidatorMockFactory.MutexModelValidatorMock.Object,
                                           mock.BOLMapperMockFactory.BOLMutexMapperMock,
                                           mock.DALMapperMockFactory.DALMutexMapperMock);

            List <ApiMutexResponseModel> response = await service.All();

            response.Should().HaveCount(1);
            mock.RepositoryMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
Ejemplo n.º 5
0
        public async void Delete()
        {
            var mock  = new ServiceMockFacade <IMutexRepository>();
            var model = new ApiMutexRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <string>())).Returns(Task.CompletedTask);
            var service = new MutexService(mock.LoggerMock.Object,
                                           mock.RepositoryMock.Object,
                                           mock.ModelValidatorMockFactory.MutexModelValidatorMock.Object,
                                           mock.BOLMapperMockFactory.BOLMutexMapperMock,
                                           mock.DALMapperMockFactory.DALMutexMapperMock);

            ActionResponse response = await service.Delete(default(string));

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <string>()));
            mock.ModelValidatorMockFactory.MutexModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <string>()));
        }