Exemple #1
0
    public void WhenMinimumValueIsNull_ShouldNotThrow()
    {
        const string?myArgument = "A";
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingLessThanMinimum(myArgument, null));

        Assert.Equal(myArgument, result);
    }
Exemple #2
0
        /// <summary>
        /// Creates a new Authenticated Session
        /// </summary>
        /// <param name="authenticator"><see cref="IAuthenticator"/> and its implementations:
        /// <seealso cref="StoredAuthenticator"/>
        /// <seealso cref="UserPassAuthenticator"/>
        /// </param>
        /// <param name="cts">Cancellation token for the asynchronous operation.</param>
        /// <param name="deviceType"><see cref="DeviceType"/></param>
        /// <param name="deviceName">string to display on spotify connect</param>
        /// <param name="conf">Configuration file. See <see cref="Configuration"/></param>
        /// <param name="ws">An implementation of the abstract class: <see cref="WebsocketHandler"/></param>
        /// <param name="preferredLocale">2 letter locale code. Default = English</param>
        /// <param name="overrideAdress"></param>
        /// <returns><see cref="SpotifySession"/></returns>
        /// <exception cref="UnauthorizedAccessException">When trying to authenticated with <seealso cref="StoredAuthenticator"/> but no file is saved</exception>
        /// <exception cref="SpotifyAuthenticatedException">When credentials are invalid.</exception>
        public static async Task <SpotifySession> CreateAsync(
            IAuthenticator authenticator,
            CancellationToken cts,
            DeviceType deviceType,
            string deviceName,
            Configuration conf,
            WebsocketHandler ws,
            string preferredLocale = "en",
            string overrideAdress  = null)
        {
            Cache = new MemoryCache(new MemoryCacheOptions());
            GuardAgainst.ArgumentBeingNull(authenticator);
            //  TimeProvider.Init(conf);
            var deviceId = Utils.RandomHexString(new Random(), 40).ToLower();
            var session  =
                new SpotifySession(
                    new Inner(deviceType,
                              deviceName,
                              deviceId,
                              preferredLocale,
                              conf),
                    cts,
                    overrideAdress)
            {
                loginCredentials = await authenticator.Get()
            };
            await session.conn;

            session.Connect();
            await session.Authenticate(session.loginCredentials, ws);

            return(session);
        }
    public void WhenArgumentIsInRange_ShouldNotThrow()
    {
        const int myArgument = 3;
        var       result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingOutOfRange(myArgument, 2, 4));

        Assert.Equal(myArgument, result);
    }
    public void WhenArgumentIsNotEmptyGuid_ShouldNotThrow()
    {
        var myArgument = new Guid("1e750e0a-f9be-4d31-a78e-590325cb7045");
        var result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingEmpty(myArgument));

        Assert.Equal(myArgument, result);
    }
        public Task <PagedNameViewModel> Handle(GetContinentNamesLikeNameQuery request, CancellationToken cancellationToken)
        {
            var name       = request.Name;
            var pageNumber = request.PageNumber;
            var pageSize   = request.PageSize;

            GuardAgainst.LessThanOrEqualToZero(pageNumber, nameof(pageNumber));
            GuardAgainst.LessThanOrEqualToZero(pageSize, nameof(pageSize));

            return(_repository.GetContinentNamesLikeName(name, pageNumber, pageSize)
                   .ContinueWith(t =>
            {
                GuardAgainst.FaultedOrCancelled(t);
                var count = _repository
                            .GetTotalCountOfContinentNamesLikeName(name)
                            .ResultIfGreaterThanZero(cancellationToken);
                return new PagedNameViewModel
                {
                    Count = count,
                    PageNumber = pageNumber,
                    PageSize = pageSize,
                    Items = t.Result.ToList()
                };
            }, cancellationToken));
        }
    public void WhenArgumentIsLessThanMaximum_ShouldNotThrow()
    {
        const int myArgument = 1;
        var       result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingGreaterThanMaximum(myArgument, 2));

        Assert.Equal(myArgument, result);
    }
Exemple #7
0
    public void WhenArgumentValueIsNull_ShouldNotThrow()
    {
        const string?myArgument = null;
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingOutOfRange(myArgument, "B", "D"));

        Assert.Equal(myArgument, result);
    }
        public IPlayableId GetCurrentPlayableOrThrow()
        {
            var id = GetCurrentPlayable();

            GuardAgainst.ArgumentBeingNull(id);
            return(id);
        }
        /// <inheritdoc/>
        public Task <Province?> GetProvinceByName(string name)
        {
            var query = $"select * from Provinces where Name = '{name}'";

            return(_dbContext.Provinces.FromSqlRaw(query).AsNoTracking().FirstOrDefaultAsync()
                   .ContinueWith(t =>
            {
                GuardAgainst.FaultedOrCancelled(t);
                var province = t.Result;
                if (province == null)
                {
                    return null;
                }

                var country = _dbContext.Countries
                              .AsNoTracking()
                              .FirstOrDefault(c => c.Id == province.CountryId);
                if (country != null)
                {
                    province.SetCountry(country);
                }

                return province;
            }));
        }
        /// <inheritdoc/>
        public Task <PagedNameViewModel> Handle(GetProvinceNamesLikeNameQuery request, CancellationToken cancellationToken)
        {
            GuardAgainst.NullOrEmpty(request.Name, "name");
            GuardAgainst.LessThanOrEqualToZero(request.PageNumber, "pageNumber");
            GuardAgainst.LessThanOrEqualToZero(request.PageSize, "pageSize");

            var pageNumber = request.PageNumber;
            var pageSize   = request.PageSize;

            return(_repository.GetProvinceNamesLikeName(request.Name, pageNumber, pageSize)
                   .ContinueWith(fetchTask =>
            {
                GuardAgainst.FaultedOrCancelled(fetchTask);
                var countTask = _repository.GetTotalCountOfProvinceNamesLikeName(request.Name);
                countTask.Wait(cancellationToken);

                return new PagedNameViewModel
                {
                    Count = countTask.Result,
                    PageNumber = pageNumber,
                    PageSize = pageSize,
                    Items = fetchTask.Result.ToList()
                };
            }, cancellationToken));
        }
Exemple #11
0
        public async Task <bool> Handle(CreateCustomerRequest request, CancellationToken cancellationToken)
        {
            GuardAgainst.ArgumentBeingNull(request);
            var customerDetail = mapper.Map <Customer>(request.CustomerViewModel);

            return(await Task.Run(() => customerRedisContext.SetCustomer(customerDetail)));
        }
Exemple #12
0
        /// <inheritdoc/>
        public Task <City?> GetCityByName(string name)
        {
            // intentional SQL Injeciton risk
            var query = $"select * from Cities where Name = '{name}'";

            return(_dbContext.Cities.FromSqlRaw(query).AsNoTracking().FirstOrDefaultAsync()
                   .ContinueWith(t =>
            {
                GuardAgainst.FaultedOrCancelled(t);

                var city = t.Result;
                if (city == null)
                {
                    return null;
                }

                var province = _dbContext.Provinces
                               .AsNoTracking()
                               .Include(p => p.Country)
                               .FirstOrDefault(p => p.Id == city.ProvinceId);
                if (province != null)
                {
                    city.SetCountryAndProvince(province);
                }
                return city;
            }));
        }
Exemple #13
0
        /// <inheritdoc/>
        public Task <PagedIdNameViewModel> Handle(GetContinentsQuery request, CancellationToken cancellationToken)
        {
            var pageNumber = request.PageNumber;
            var pageSize   = request.PageSize;

            GuardAgainst.LessThanOrEqualToZero(pageNumber, nameof(pageNumber));
            GuardAgainst.LessThanOrEqualToZero(pageSize, nameof(pageSize));

            return(_repository.GetContinents(pageNumber, pageSize)
                   .ContinueWith(t =>
            {
                GuardAgainst.FaultedOrCancelled(t);
                var items = t.Result;

                // would prefer to go parallel but entityframework doesn't support parallel operations against
                // the same dbContext, at least EF6 doesn't
                var count = _repository.GetTotalCountOfContinents().ResultIfGreaterThanZero(cancellationToken);

                return new PagedIdNameViewModel
                {
                    Count = count,
                    PageNumber = pageNumber,
                    PageSize = pageSize,
                    Items = items.Select(tuple => new IdNameViewModel {
                        Id = tuple.Id, Name = tuple.Name
                    }).ToList()
                };
            }, cancellationToken));
        }
Exemple #14
0
    public void WhenArgumentIsNullEnumerable_ShouldNotThrow()
    {
        const int[]? myArgument = null;
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingEmpty(myArgument));

        Assert.Equal(myArgument, result);
    }
Exemple #15
0
 public UrlTenentResolver(ICurrentHost host, ITenantService service)
 {
     GuardAgainst.Null(service);
     GuardAgainst.Null(host);
     _host    = host;
     _service = service;
 }
Exemple #16
0
    public void WhenArgumentIsNull_ShouldThrowArgumentNullException()
    {
        const string?myArgument = null;
        var          ex         = Should.Throw <ArgumentNullException>(() => GuardAgainst.ArgumentBeingNullOrWhitespace(myArgument));

        ex.ParamName.ShouldBe(nameof(myArgument));
    }
Exemple #17
0
        public async Task <CustomerViewModel> Handle(GetCustomerRequest request, CancellationToken cancellationToken)
        {
            GuardAgainst.ArgumentBeingNull(request);
            var customerDetail = customerRedisContext.GetCustomer(request.Id);

            return(await Task.Run(() => mapper.Map <CustomerViewModel>(customerDetail)));
        }
    public void WhenArgumentIsNull_ShouldThrowArgumentNullException()
    {
        const IEnumerable <string>?myArgument = null;
        var ex = Should.Throw <ArgumentNullException>(() => GuardAgainst.ArgumentBeingNullOrEmpty(myArgument));

        ex.ParamName.ShouldBe(nameof(myArgument));
    }
Exemple #19
0
    public void WhenArgumentIsFalse_ShouldNotThrow()
    {
        const bool myArgument = false;
        var        result     = Should.NotThrow(() => GuardAgainst.OperationBeingInvalid(myArgument));

        Assert.Equal(myArgument, result);
    }
    public void WhenArgumentIsEqualToMinimum_ShouldNotThrow()
    {
        var myArgument = 1;
        var result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingLessThanMinimum(myArgument, myArgument));

        Assert.Equal(myArgument, result);
    }
    public void WhenArgumentIsWhitespace_ShouldThrowArgumentException()
    {
        const string myArgument = "  ";
        var          ex         = Should.Throw <ArgumentException>(() => GuardAgainst.ArgumentBeingWhitespace(myArgument));

        ex.ParamName.ShouldBe(nameof(myArgument));
    }
Exemple #22
0
        public ITypeSelector Except(Func <ITypeFilter, bool> predicate)
        {
            GuardAgainst.Null(predicate, nameof(predicate));

            _exceptPredicates.Add(predicate);
            return(this);
        }
    public void WhenArgumentIsNull_ShouldNotThrowArgumentNullException()
    {
        const string?myArgument = null;
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingWhitespace(myArgument));

        Assert.Equal(myArgument, result);
    }
        public Task <PagedIdNameViewModel> Handle(GetCitiesQuery request, CancellationToken cancellationToken)
        {
            var pageNumber = request.PageNumber;
            var pageSize   = request.PageSize;

            GuardAgainst.LessThanOrEqualToZero(pageNumber, nameof(pageNumber));
            GuardAgainst.LessThanOrEqualToZero(pageSize, nameof(pageSize));

            return(_repository.GetCities(pageNumber, pageSize)
                   .ContinueWith(fetchTask =>
            {
                GuardAgainst.FaultedOrCancelled(fetchTask);

                // would prefer to go parallel but entityframework doesn't support parallel operations against
                // the same dbContext, at least EF6 doesn't
                var count = _repository.GetTotalCountOfCities().ResultIfGreaterThanZero(cancellationToken);

                return new PagedIdNameViewModel
                {
                    Count = count,
                    PageNumber = pageNumber,
                    PageSize = pageSize,
                    Items = _mapper.Map <List <IdNameViewModel> >(fetchTask.Result.ToList())
                };
            }, cancellationToken));
        }
Exemple #25
0
    public void WhenMaximumValueIsNull_ShouldThrowArgumentNullException()
    {
        const string myArgument = "A";
        var          ex         = Should.Throw <ArgumentOutOfRangeException>(() =>
                                                                             GuardAgainst.ArgumentBeingOutOfRange(myArgument, "B", null));

        ex.ParamName.ShouldBe("myArgument");
    }
    public void WhenArgumentIsNotNullOrEmpty_ShouldNotThrow()
    {
        var myArgument = new[] { "blah" };
        var result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingNullOrEmpty(myArgument));

        Assert.NotNull(result);
        Assert.Equal(myArgument, result);
    }
    public void WhenArgumentIsGreaterThanMinimum_ShouldNotThrow()
    {
        var myArgument = 2;
        var result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingLessThanMinimum(myArgument, 1));

        Assert.NotNull(result);
        Assert.Equal(myArgument, result);
    }
    public void WhenArgumentIsNotWhitespace_ShouldNotThrow()
    {
        const string myArgument = " blah ";
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingWhitespace(myArgument));

        Assert.NotNull(result);
        Assert.Equal(myArgument, result);
    }
Exemple #29
0
    public void WhenMinimumValueIsNull_ShouldNotThrow()
    {
        const string myArgument = "A";
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingOutOfRange(myArgument, null, "D"));

        Assert.NotNull(result);
        Assert.Equal(myArgument, result);
    }
Exemple #30
0
    public void WhenArgumentIsLessThanMaximum_ShouldNotThrow()
    {
        const string?myArgument = "A";
        var          result     = Should.NotThrow(() => GuardAgainst.ArgumentBeingNullOrGreaterThanMaximum(myArgument, "B"));

        Assert.NotNull(result);
        Assert.Equal(myArgument, result);
    }