public static async Task CreateUserNoHash()
        {
            var container = ContainerGenerator.StartNew()
                            .WithDbContext()
                            .WithUnitOfWork()
                            .Generate();

            container.Register <IUserRepository, UserRepository>();
            container.Register <IPasswordHashService, DoNothingPasswordHashService>();
            container.Register <UserService>();

            using (var scope = AsyncScopedLifestyle.BeginScope(container))
            {
                var userService = container.GetInstance <UserService>();

                await userService.Create(new Models.UserCreateModel
                {
                    CleartextPassword = "******",
                    Email             = $"f@ke-{Guid.NewGuid().ToString("n").Substring(0, 6)}.com",
                    FirstName         = "Mike",
                    LastName          = "Devlin"
                });

                await scope.DisposeAsync();
            }
        }
        public void IoC_Installer_Can_Install_Appropriately()
        {
            var containerGen = new ContainerGenerator();

            containerGen.InstallIoC();

            var continaer = containerGen.GenerateContainer();
        }
        public void ServiceLocator_Can_Initialize_With_Container()
        {
            var containerGen = new ContainerGenerator();

            var container = containerGen.GenerateContainer();

            _sut.Init(container);

            Assert.NotNull(_sut.Container);
        }
        public void ServiceLocator_Can_Resolve_From_Initialized_Container()
        {
            var containerGen = new ContainerGenerator();

            containerGen.RegisterInstance(new TestClass());

            var container = containerGen.GenerateContainer();

            _sut.Init(container);

            var resolved = _sut.GetService(typeof(TestClass));

            Assert.IsType(typeof(TestClass), resolved);
        }
示例#5
0
        public string Get()
        {
            var cityGenerator = new CityGenerator();

            if (!cityGenerator.Generate())
            {
                return("Error");
            }

            var factoryGenerator = new FactoryGenerator();

            if (!factoryGenerator.Generate())
            {
                return("Error");
            }

            var utilityGenerator = new UtilityGenerator();

            if (!utilityGenerator.Generate())
            {
                return("Error");
            }

            var regionGenerator = new RegionGenerator();

            if (!regionGenerator.Generate())
            {
                return("Error");
            }

            var containerGenerator = new ContainerGenerator();

            if (!containerGenerator.Generate())
            {
                return("Error");
            }

            var tripGenerator = new TripGenerator();

            if (!tripGenerator.Generate())
            {
                return("Error");
            }

            return("Success");
        }
示例#6
0
        public TestBase()
        {
            var containerGen = new ContainerGenerator();

            // Installations
            containerGen.InstallIoC();
            containerGen.InstallCaching();
            containerGen.InstallUtility();

            // Attempt to override
            containerGen.Register <TestServiceLocator>().As <IServiceLocator>().WithLifestyle(RegistrationLifestyleType.Singleton);

            // Generate Container
            var container = containerGen.GenerateContainer();

            // Resolve and initialize singleton ServiceLocator instance
            var svcLocator = container.Resolve <IServiceLocator>();

            svcLocator.Init(container);
        }
        public static async Task CreateUserWithHash()
        {
            var container = ContainerGenerator.StartNew()
                            .WithDbContext()
                            .WithUnitOfWork()
                            .Generate();

            container.Register <IUserRepository, UserRepository>();
            container.Register <IPasswordHashService, BCryptPasswordHashService>();
            container.Register <UserService>();
            container.Register <AuthenticationService>();

            var email = $"f@ke-{Guid.NewGuid().ToString("n").Substring(0, 6)}.com";

            using (var scope = AsyncScopedLifestyle.BeginScope(container))
            {
                var userService = container.GetInstance <UserService>();

                await userService.Create(new Models.UserCreateModel
                {
                    CleartextPassword = "******",
                    Email             = email,
                    FirstName         = "Mike",
                    LastName          = "Devlin"
                });

                await scope.DisposeAsync();
            }

            using (var scope = AsyncScopedLifestyle.BeginScope(container))
            {
                var authService = container.GetInstance <AuthenticationService>();
                var happyResult = await authService.Authenticate(email, "password");

                System.Console.WriteLine($"Happy result: {happyResult}");

                var sadResult = await authService.Authenticate(email, "");

                System.Console.WriteLine($"Sad result: {sadResult}");
            }
        }