public void GetImageAsByteArray_WhenCannotReadNewImageFromCacheAndCanReadFromWebCam_ReturnImageFromWebCam(int userId, int cacheUpdaterUserId)
        {
            // Arrange
            const string userUtc = "some_UTC_value";

            _dateTimeProvider.DateTimeNow.Returns(new DateTime(2019, 05, 01, 15, 30, 30, 100));
            (int waitTimeMilliSec, string reason)valueTuple = (0, "");
            _imageFromCacheService.WaitBeforeGettingNextImage(Arg.Any <int>(), Arg.Any <DateTime>()).Returns(valueTuple);

            _imageFromCacheService.GetNewImageAsByteArray(Arg.Any <int>(), Arg.Any <DateTime>()).Returns((byte[])null);

            _cacheUpdater.Update(userId: cacheUpdaterUserId, lastUpdate: DateTime.MinValue);

            var imageFromWebCam = new Bitmap(1, 1);

            byte[] imageArrayFromWebCam = ImageHelper.ConvertImageToByteArray(imageFromWebCam);
            _imageFromWebCamService.GetImage(Arg.Any <string>()).Returns(imageFromWebCam);

            IImageProviderService imageProviderService = CreateValidImageProviderService();


            // Act
            bool canReadImageFromWebCam = imageProviderService.CanReadImageFromWebCam(userId, _dateTimeProvider.DateTimeNow);

            byte[] imageAsByteArray = imageProviderService.GetImageAsByteArray(userId, userUtc);

            // Assert
            Assert.That(canReadImageFromWebCam, Is.True);
            Assert.That(imageAsByteArray, Is.Not.Null);

            Assert.That(imageAsByteArray.Length, Is.EqualTo(imageArrayFromWebCam.Length));

            Assert.That(_cacheUpdater.LastUpdate, Is.EqualTo(_dateTimeProvider.DateTimeNow));
            Assert.That(_cacheUpdater.UserId, Is.EqualTo(userId));
        }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImageController"/> class.
 /// </summary>
 /// <param name="imageProviderService">Service to get filtered image URL's.</param>
 /// <param name="logger">Used to perform logging of errors and information.</param>
 /// <param name="telemetryClient">Instance of telemetry client.</param>
 public ImageController(
     IImageProviderService imageProviderService,
     ILogger <ImageController> logger,
     TelemetryClient telemetryClient)
     : base(telemetryClient)
 {
     this.imageProviderService = imageProviderService;
     this.logger = logger;
 }
 public DialogViewModelFactory(ILibraryExplorerViewModel commonVM, IConnectedServicesInfoProviderService connectedServices,
                               IImageProviderService imageProviderService, ICommandFactory commandFactory, IRepository <Library> libraryRepository)
 {
     CommonViewModel      = commonVM;
     ConnectedServices    = connectedServices;
     ImageProviderService = imageProviderService;
     CommandFactory       = commandFactory;
     LibraryRepository    = libraryRepository;
 }
        public ImageController(IImageProviderService imageProviderService,
                               AppConfiguration configuration,
                               IDateTimeProvider dateTimeProvider,
                               IMiniLogger logger)
            : base(configuration, dateTimeProvider, logger)
        {
            _imageProviderService = imageProviderService;
            _snapshotImagePath    = AppConfiguration.SnapShotImagePath;

            RegisterConnectedUser();
        }
        public void CanReadImageFromWebCam_SameUserIdAndAnyRequestTime_ReturnTrue(int userId, int requestDelayMilliSec)
        {
            // Arrange
            _dateTimeProvider.DateTimeNow.Returns(new DateTime(2019, 05, 01, 15, 30, 30, 100));
            _cacheUpdater.Update(userId, _dateTimeProvider.DateTimeNow);
            IImageProviderService imageProviderService = CreateValidImageProviderService();
            DateTime requestTime = RequestTime(requestDelayMilliSec);

            // Act
            bool canReadImageFromWebCam = imageProviderService.CanReadImageFromWebCam(userId, requestTime);

            // Assert
            Assert.That(canReadImageFromWebCam, Is.True);
        }
        public void CanReadImageFromWebCam_DifferentUserIdAndCacheUpdaterIsGiven_ReturnExpectedValue(int requestDelayMilliSec, bool expectedCanRead)
        {
            // Arrange
            _dateTimeProvider.DateTimeNow.Returns(new DateTime(2019, 05, 01, 15, 30, 30, 100));

            const int userId             = 1;
            const int cacheUpdaterUserId = userId + 10;

            _cacheUpdater.Update(userId: cacheUpdaterUserId, lastUpdate: _dateTimeProvider.DateTimeNow);

            IImageProviderService imageProviderService = CreateValidImageProviderService();
            DateTime requestTime = RequestTime(requestDelayMilliSec + _cacheUpdaterExpirationMilliSec);

            // Act
            bool canReadImageFromWebCam = imageProviderService.CanReadImageFromWebCam(userId, requestTime);

            // Assert
            Assert.That(canReadImageFromWebCam, Is.EqualTo(expectedCanRead));
        }