public void IfClientExist_InMemory_Pass()
        {   //Arrange
            var expected = true;
            var actual   = false;
            var option   = new DbContextOptionsBuilder <ApiGatewayContext>()
                           .UseInMemoryDatabase(databaseName: "ServiceDiscoveryDAO_IfClientExist_Pass_database")
                           .Options;

            //Act
            using (var context = new ApiGatewayContext(option))
            {
                var teamForTesting = new Team();
                var randomKey      = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));
                teamForTesting.ClientId    = randomKey;
                teamForTesting.WebsiteUrl  = "testingWebSiteUrl";
                teamForTesting.Secret      = "testingSecret";
                teamForTesting.CallbackUrl = "testingCallBackUrl";
                teamForTesting.Digest      = "testingDigest";
                teamForTesting.Username    = "******";
                context.Team.Add(teamForTesting);
                context.SaveChanges();

                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);

                //Different from GetServices, check if a team exist need the same random key
                actual = serviceDiscoveryDAO.IfClientExist(randomKey);
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void GetServices_NotPass_EmptyDatabase()
        {   //Arrange
            var expected = false;
            var actual   = false;
            ICollection <ServiceDisplayResp> registeredServices;
            var option = new DbContextOptionsBuilder <ApiGatewayContext>()
                         .UseInMemoryDatabase(databaseName: "ServiceDiscoveryDAO_GetServices_Empty_database")
                         .Options;

            //Act
            using (var context = new ApiGatewayContext(option))
            {
                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);
                registeredServices = serviceDiscoveryDAO.GetServices(GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User))));
            }

            //Since input is invalid, the registeredServices should be null
            if (registeredServices != null)
            {
                actual = true;
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void IfClientExist_WhiteSpaceInput()
        {   //Arrange
            var expected = false;
            var actual   = false;

            //Act
            using (var context = new ApiGatewayContext())
            {
                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);
                actual = serviceDiscoveryDAO.IfClientExist("");
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void IfClientExist_InMemory_EmptyDatabase()
        {   //Arrange
            var expected = false;
            var actual   = false;
            var option   = new DbContextOptionsBuilder <ApiGatewayContext>()
                           .UseInMemoryDatabase(databaseName: "ServiceDiscoveryDAO_IfClientExist_NotPass_database")
                           .Options;

            //Act
            using (var context = new ApiGatewayContext(option))
            {
                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);
                var inputClientId       = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));

                actual = serviceDiscoveryDAO.IfClientExist(inputClientId);
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void GetServices_NotPass_WhiteSpaceInput()
        {   //Arrange
            var expected = false;
            var actual   = false;
            ICollection <ServiceDisplayResp> registeredServices;

            //Act
            using (var context = new ApiGatewayContext())
            {
                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);
                registeredServices = serviceDiscoveryDAO.GetServices("");
            }

            //Since input is invalid, the registeredServices should be null
            if (registeredServices != null)
            {
                actual = true;
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void IfClientExist_InMemory_ClientDoesnotMatch()
        {   //Arrange
            var expected = false;
            var actual   = false;
            var option   = new DbContextOptionsBuilder <ApiGatewayContext>()
                           .UseInMemoryDatabase(databaseName: "ServiceDiscoveryDAO_IfClientExist_NotPass_database")
                           .Options;

            //Act
            using (var context = new ApiGatewayContext(option))
            {
                // Create a team first
                var teamForTesting = new Team();
                var randomId       = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));
                teamForTesting.ClientId    = randomId;
                teamForTesting.WebsiteUrl  = "testingWebSiteUrl";
                teamForTesting.Secret      = "testingSecret";
                teamForTesting.CallbackUrl = "testingCallBackUrl";
                teamForTesting.Digest      = "testingDigest";
                teamForTesting.Username    = "******";
                context.Team.Add(teamForTesting);

                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);
                var inputClientId       = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));

                //Make sure the second random generated clientId is different from the first one
                while (inputClientId == randomId)
                {
                    inputClientId = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));
                }

                actual = serviceDiscoveryDAO.IfClientExist(inputClientId);
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
        public void GetServices_InMemory_Pass()
        {   //Arrange
            var expected = true;
            var actual   = false;
            var option   = new DbContextOptionsBuilder <ApiGatewayContext>()
                           .UseInMemoryDatabase(databaseName: "ServiceDiscoveryDAO_GetServices_Pass_Database")
                           .Options;
            ICollection <ServiceDisplayResp> registeredServices;

            //Act
            using (var context = new ApiGatewayContext(option))
            {
                // Create a team first
                var teamForTesting = new Team();
                var randomId       = GenerateRandomKey(Int32.Parse(Environment.GetEnvironmentVariable("APIKeyInputLength", EnvironmentVariableTarget.User)));
                teamForTesting.ClientId    = randomId;
                teamForTesting.WebsiteUrl  = "testingWebSiteUrl";
                teamForTesting.Secret      = "testingSecret";
                teamForTesting.CallbackUrl = "testingCallBackUrl";
                teamForTesting.Digest      = "testingDigest";
                teamForTesting.Username    = "******";
                context.Team.Add(teamForTesting);

                //Service

                var serviceForTesting = new Service();
                serviceForTesting.Endpoint    = "testingEndPoint";
                serviceForTesting.Owner       = randomId;//need to be the same as team's ClineId
                serviceForTesting.Id          = 12345678;
                serviceForTesting.Input       = "int";
                serviceForTesting.Output      = "int";
                serviceForTesting.Dataformat  = "xml";
                serviceForTesting.Description = "Some description for testing";
                context.Service.Add(serviceForTesting);

                //Configuration

                var configForTesting = new Configuration();
                configForTesting.EndPoint = "testingEndPoint";//need to be the same as service
                configForTesting.OpenTo   = randomId;
                configForTesting.Steps    = "some steps for testing";
                context.Configuration.Add(configForTesting);
                context.SaveChanges();

                var serviceDiscoveryDAO = new ServiceDiscoveryDAO(context);

                registeredServices = serviceDiscoveryDAO.GetServices(randomId);
                if (registeredServices.Count > 0)
                {
                    actual = true;
                }
            }

            foreach (var service in registeredServices)
            {
                Trace.WriteLine(service.Endpoint + " " + service.Username + " " + service.Input + " " + service.Output + " " + service.Dataformat + " " + service.Description + Environment.NewLine);
            }

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #8
0
 public ServiceDiscoveryService(ApiGatewayContext dbContext)
 {
     _serviceDisplayDAO = new ServiceDiscoveryDAO(dbContext);
 }