public void Instance_Implement_Interface_IHaveAccommodationId() { //Arrange var providerMock = new Mock <IProvider>(); //Act var query = new GetRoomPhotosByAccommodationId(providerMock.Object); //Assert Assert.IsInstanceOf <IHaveAccommodationId>(query); }
public void Instance_Implement_Interface_IQuery() { //Arrange var type = typeof(IQuery <IEnumerable <RoomPhoto> >); var providerMock = new Mock <IProvider>(); //Act var query = new GetRoomPhotosByAccommodationId(providerMock.Object); //Assert Assert.IsInstanceOf(type, query); }
public void HandleAsync() { //Arrange var ownerMock = new Mock <IHavePropertyQueryable <PhotoOfAccommodation> >(); var projectorMock = new Mock <IProjection>(); var handler = new RoomPhotosByAccommodationId(ownerMock.Object, projectorMock.Object); var providerMock = new Mock <IProvider>(); var query = new GetRoomPhotosByAccommodationId(providerMock.Object); //Act var result = handler.HandleAsync(query, default(CancellationToken)); //Assert Assert.IsInstanceOf <Task <IEnumerable <RoomPhoto> > >(result); }
protected IQueryable <RoomPhoto> ProjectionToRoomPhotos(IQueryable <PhotoOfAccommodation> photosOfAccommodations, GetRoomPhotosByAccommodationId query, IProjection projector) { var photosOfRooms = Source.SelectMany(p => p.ToTypesOfRooms).Select(p => p.Id); photosOfAccommodations = photosOfAccommodations .Include(p => p.ToTypesOfRooms) .Where(p => p.AccommodationId == query.AccommodationId) .Where(p => photosOfRooms.Contains(p.Id)); return(projector.ProjectTo <RoomPhoto>(photosOfAccommodations)); }
public override async Task <IEnumerable <RoomPhoto> > HandleAsync(GetRoomPhotosByAccommodationId query, CancellationToken cancellationToken) { return(await ProjectionToRoomPhotos(Source, query, Projector).ToArrayAsync(cancellationToken)); }