Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }