public async Task GetAmountOfSubscribers_Post_TwoUsers_SameSubscribedPidUri_Returns_NumberOfSubscribers() { _seeder.ClearUsers(); _seeder.SeedMessageTemplates(); var user = TestData.GenerateRandomUser(); var user2 = TestData.GenerateRandomUser(); var subscription = TestData.GenerateRandomColidEntrySubscription(); subscription.User = user; var subscription2 = new ColidEntrySubscription() { ColidPidUri = subscription.ColidPidUri, User = user2 }; _seeder.Add(subscription); _seeder.Add(subscription2); var response = await Client.PostAsync($"{PATH}/subscriptions", _api.BuildJsonHttpContent(new HashSet <Uri>() { subscription.ColidPidUri })); var stringResponse = await response.Content.ReadAsStringAsync(); _output.WriteLine(stringResponse); response.EnsureSuccessStatusCode(); var result = JsonConvert.DeserializeObject <List <ColidEntrySubscriptionAmountDto> >(stringResponse); Assert.Single(result); Assert.Equal(subscription.ColidPidUri, result.First().ColidPidUri); Assert.Equal(2, result.First().Subscriptions); }
public UserServiceTests() { _mockUserRepository = new Mock <IUserRepository>(); _mockConsumerGroupService = new Mock <IConsumerGroupService>(); _mockSearchFilterDataMarketplaceService = new Mock <IGenericService <SearchFilterDataMarketplace, int> >(); _mockColidEntrySubscriptionService = new Mock <IColidEntrySubscriptionService>(); _mockStoredQueryService = new Mock <IGenericService <StoredQuery, int> >(); _mockLogger = new Mock <ILogger <UserService> >(); // Init test data _consumerGroup = new ConsumerGroupBuilder() .WithUri(new Uri("http://meh")) .Build(); _colidEntrySubscription = new ColidEntrySubscriptionBuilder() .WithColidEntry("http://www.averyhandsomeurl.com/") .Build(); _user = new UserBuilder() .WithId(Guid.NewGuid()) .WithEmailAddress("*****@*****.**") .WithDefaultConsumerGroup(_consumerGroup) .WithMessageConfig(new MessageConfig { SendInterval = SendInterval.Weekly, DeleteInterval = DeleteInterval.Monthly }) .WithColidEntrySubscriptions(new List <ColidEntrySubscription>() { _colidEntrySubscription }) .Build(); // Init mock behaviour _mockUserRepository.Setup(x => x.GetOne(It.IsAny <Guid>(), It.IsAny <bool>())) .Returns(_user); _mockUserRepository.Setup(x => x.GetOneAsync(It.IsAny <Guid>(), It.IsAny <bool>())) .ReturnsAsync(_user); _mockConsumerGroupService.Setup(x => x.GetOne(It.IsAny <Uri>())) .Returns(_consumerGroup); _mockColidEntrySubscriptionService.Setup(x => x.GetOne(It.IsAny <Guid>(), It.IsAny <ColidEntrySubscriptionDto>())) .Returns(_colidEntrySubscription); var configuration = new MapperConfiguration(cfg => cfg.AddProfile(new MappingProfiles())); var mapper = new Mapper(configuration); _userService = new UserService(_mockUserRepository.Object, _mockConsumerGroupService.Object, _mockSearchFilterDataMarketplaceService.Object, _mockColidEntrySubscriptionService.Object, _mockStoredQueryService.Object, mapper, _mockLogger.Object); }
private static void CheckIfUserIsAlreadySubscribedToColidPidUri(User entity, ColidEntrySubscription colidEntrySubscription) { var existingSubscription = entity.ColidEntrySubscriptions.Where(ces => colidEntrySubscription.ColidPidUri.AbsoluteUri == ces.ColidPidUri.AbsoluteUri).FirstOrDefault(); if (existingSubscription.IsNotEmpty()) { throw new EntityAlreadyExistsException("The user is already subscribed to the COLID entry.", existingSubscription); } }
public ColidEntrySubscription AppendColidEntrySubscriptionToUser(ColidEntrySubscription ce, User user) { using var context = new AppDataContext(_dbOptions); var dbSubscription = context.ColidEntrySubscriptions.Find(ce.Id); if (dbSubscription == null) { throw new EntityNotFoundException("Doesn't exist."); } dbSubscription.User = user; var result = context.Update(dbSubscription); context.SaveChanges(); return(result.Entity); }
public ColidEntrySubscriptionServiceTests() { _mockSubscriptionRepository = new Mock <IColidEntrySubscriptionRepository>(); _mockLogger = new Mock <ILogger <ColidEntrySubscriptionService> >(); _subscriptionService = new ColidEntrySubscriptionService(_mockSubscriptionRepository.Object, _mockLogger.Object); // Init testdata _userId = Guid.NewGuid(); var builder = new ColidEntrySubscriptionBuilder().WithColidEntry(new Uri($"https://pid.bayer.com/kos19050#{Guid.NewGuid()}")); _colidEntrySubscription = builder.Build(); _colidEntrySubscriptionDto = builder.BuildDto(); // Init mock behaviour _mockSubscriptionRepository.Setup(x => x.GetOne(It.IsAny <Guid>(), It.IsAny <Uri>())) .Returns(_colidEntrySubscription); IList <User> subscribedUsers; _mockSubscriptionRepository.Setup(x => x.TryGetAllUsers(It.IsAny <Uri>(), out subscribedUsers)); }