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)); }
public HttpResponseMessage GetImage(string id) { byte[] imageByteArray = _imageProviderService.GetImageAsByteArray(UserId, id); if (imageByteArray == null) { return(null); } ImageFileWriter.SaveImageSnapshot(imageByteArray, DateTimeProviderInstance, _snapshotImagePath, Logger, UserId, UserIp); HttpResponseMessage response = CreateImageResponseMessage(imageByteArray); return(response); }