public void ItReturnsNotFoundIfCarIsntFound()
        {
            // Arrange
            var service = new Mock <ICarService>();

            service.Setup(m => m.FindAll()).Returns(TestHelpers.Fixture.CreateMany <Data.Models.Car>().AsQueryable());
            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(null);

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                var target = container.Cars.First();
                container.DeleteObject(target);
                try
                {
                    container.SaveChanges();
                }
                catch (DataServiceRequestException exception)
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull(inner);
                    Assert.AreEqual((int)HttpStatusCode.NotFound, inner.StatusCode);
                    return;
                }

                // Assert
                Assert.Fail("Exception not caught.");
            }
        }
        public void ItDeletesTheCar()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create <Data.Models.Car>();
            var service   = new Mock <ICarService>();

            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(storedCar);
            service.Setup(m => m.Delete(It.IsAny <Data.Models.Car>())).ReturnsAsync(1).Verifiable();

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                var target = container.Cars.ByKey(storedCar.Id).GetValue();
                container.DeleteObject(target);
                var response =
                    container.SaveChanges()
                    .Cast <ChangeOperationResponse>()
                    .First();

                // Assert
                Assert.AreEqual((int)HttpStatusCode.NoContent, response.StatusCode);
                Assert.IsNull(response.Error);
                service.Verify(m => m.Delete(It.Is <Data.Models.Car>(x => x.Id == storedCar.Id)), Times.Once);
            }
        }
        public void ItUpdatesTheCar()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create<Car>();
            var service = new Mock<ICarService>();
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( storedCar );
            service.Setup( m => m.Update( It.IsAny<Car>() ) ).ReturnsAsync( storedCar );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act
                Client.Example.Data.Models.Car target = container.Cars.ByKey( storedCar.Id ).GetValue();
                target.Name = TestHelpers.Fixture.Create<string>();
                container.UpdateObject( target );
                ChangeOperationResponse response =
                        container.SaveChanges( SaveChangesOptions.ReplaceOnUpdate )
                                .Cast<ChangeOperationResponse>()
                                .First();
                var entityDescriptor = (EntityDescriptor) response.Descriptor;
                var actual = (Client.Example.Data.Models.Car) entityDescriptor.Entity;

                // Assert
                Assert.AreEqual( (int) HttpStatusCode.NoContent, response.StatusCode );
                Assert.IsNotNull( actual );
                Assert.AreEqual( storedCar.Make, actual.Make );
                Assert.AreEqual( storedCar.Model, actual.Model );
                Assert.AreEqual( storedCar.Year, actual.Year );
            }
        }
        public void IfMissingRequiredFieldsItReturnsBadRequest()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create<Car>();
            var service = new Mock<ICarService>();
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( storedCar );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act
                Client.Example.Data.Models.Car target = container.Cars.ByKey( storedCar.Id ).GetValue();
                target.Name = null;
                try
                {
                    container.UpdateObject( target );
                    container.SaveChanges( SaveChangesOptions.ReplaceOnUpdate );
                }
                catch ( DataServiceRequestException exception )
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull( inner );
                    Assert.AreEqual( (int) HttpStatusCode.BadRequest, inner.StatusCode );
                    return;
                }
                // Assert
                Assert.Fail( "Exception not caught." );
            }
        }
        public void ItDeletesTheCar()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create<Data.Models.Car>();
            var service = new Mock<ICarService>();
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( storedCar );
            service.Setup( m => m.Delete( It.IsAny<Data.Models.Car>() ) ).ReturnsAsync( 1 ).Verifiable();

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act
                var target = container.Cars.ByKey( storedCar.Id ).GetValue();
                container.DeleteObject( target );
                var response =
                        container.SaveChanges()
                                .Cast<ChangeOperationResponse>()
                                .First();

                // Assert
                Assert.AreEqual( (int) HttpStatusCode.NoContent, response.StatusCode );
                Assert.IsNull( response.Error );
                service.Verify( m => m.Delete( It.Is<Data.Models.Car>( x => x.Id == storedCar.Id ) ), Times.Once );
            }
        }
        public void NonExistentCarReturnsNotFound()
        {
            // Arrange
            var service = new Mock<ICarService>();
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( null );

            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) )
                    )
            {
                // Act 
                try
                {
                    container.Cars.ByKey( 50 ).GetValue();
                }
                catch ( DataServiceQueryException exception )
                {
                    // Assert 
                    Assert.IsNotNull( exception.InnerException );
                    var inner = (DataServiceClientException) exception.InnerException;
                    Assert.AreEqual( 404, inner.StatusCode );
                    return;
                }

                Assert.Fail( "Exception not caught." );
            }
        }
        public void ItShouldReturnData()
        {
            // Arrange
            var service = new Mock <ICarService>();

            service.Setup(m => m.FindAll())
            .Returns(TestHelpers.Fixture.CreateMany <Data.Models.Car>(10).AsQueryable());

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel))
                   )
            {
                // Act
                var response =
                    container.Cars.Execute();


                // Assert
                Assert.AreEqual(10, response.Count());
                service.Verify(m => m.FindAll(), Times.Once);
            }
        }
        public void ItShouldReturnData()
        {
            // Arrange
            var service = new Mock<ICarService>();
            service.Setup( m => m.FindAll() )
                    .Returns( TestHelpers.Fixture.CreateMany<Data.Models.Car>( 10 ).AsQueryable() );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) )
                    )
            {
                // Act 
                var response =
                        container.Cars.Execute();


                // Assert 
                Assert.AreEqual( 10, response.Count() );
                service.Verify( m => m.FindAll(), Times.Once );
            }
        }
        public void ByKeyShouldReturnASingleCar()
        {
            // Arrange
            var service = new Mock <ICarService>();

            service.Setup(m => m.Find(It.IsAny <int>()))
            .ReturnsAsync(TestHelpers.Fixture.Create <Data.Models.Car>());

            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel))
                   )
            {
                // Act
                var response = container.Cars.ByKey(5).GetValue();


                // Assert
                Assert.IsNotNull(response);
                service.Verify(m => m.Find(It.Is <int>(i => i == 5)), Times.Once);
            }
        }
Ejemplo n.º 10
0
        public override void Reset()
        {
            base.Reset();

            Add(new ReplaySettingsOverlay()
            {
                Anchor = Anchor.TopRight,
                Origin = Anchor.TopRight,
            });

            Add(container = new ExampleContainer());

            AddStep(@"Add button", () => container.Add(new OsuButton
            {
                RelativeSizeAxes = Axes.X,
                Text             = @"Button",
            }));

            AddStep(@"Add checkbox", () => container.Add(new ReplayCheckbox
            {
                LabelText = "Checkbox",
            }));

            AddStep(@"Add textbox", () => container.Add(new FocusedTextBox
            {
                RelativeSizeAxes = Axes.X,
                Height           = 30,
                PlaceholderText  = "Textbox",
                HoldFocus        = false,
            }));
        }
        public void IfMissingRequiredFieldsItReturnsBadRequest()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create <Car>();
            var service   = new Mock <ICarService>();

            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(storedCar);

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                Client.Example.Data.Models.Car target = container.Cars.ByKey(storedCar.Id).GetValue();
                target.Name = null;
                try
                {
                    container.UpdateObject(target);
                    container.SaveChanges(SaveChangesOptions.ReplaceOnUpdate);
                }
                catch (DataServiceRequestException exception)
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull(inner);
                    Assert.AreEqual((int)HttpStatusCode.BadRequest, inner.StatusCode);
                    return;
                }
                // Assert
                Assert.Fail("Exception not caught.");
            }
        }
        public void NonExistentCarReturnsNotFound()
        {
            // Arrange
            var service = new Mock <ICarService>();

            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(null);

            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel))
                   )
            {
                // Act
                try
                {
                    container.Cars.ByKey(50).GetValue();
                }
                catch (DataServiceQueryException exception)
                {
                    // Assert
                    Assert.IsNotNull(exception.InnerException);
                    var inner = (DataServiceClientException)exception.InnerException;
                    Assert.AreEqual(404, inner.StatusCode);
                    return;
                }

                Assert.Fail("Exception not caught.");
            }
        }
        public void ItSavesNewCar()
        {
            // Arrange
            var newCar = new Car
                         {
                                 Name = "Hakosuka",
                                 Make = "Nissan",
                                 Model = "Skyline GTR",
                                 Year = 1996
                         };

            var service = new Mock<ICarService>();
            service.Setup( m => m.Create( It.IsAny<Data.Models.Car>() ) )
                    .ReturnsAsync( TestHelpers.Fixture.Create<Data.Models.Car>() );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act 
                container.AddToCars( newCar );
                ChangeOperationResponse response = container.SaveChanges().Cast<ChangeOperationResponse>().First();
                var entityDescriptor = (EntityDescriptor) response.Descriptor;
                var actual =
                        (Car) entityDescriptor.Entity;

                // Assert 
                Assert.AreEqual( (int) HttpStatusCode.Created, response.StatusCode );
                service.Verify( m => m.Create( It.IsAny<Data.Models.Car>() ), Times.Once );
                Assert.IsNotNull( actual );
            }
        }
Ejemplo n.º 14
0
        public TestSceneReplaySettingsOverlay()
        {
            ExampleContainer container;

            Add(new PlayerSettingsOverlay
            {
                Anchor = Anchor.TopRight,
                Origin = Anchor.TopRight,
            });

            Add(container = new ExampleContainer());

            AddStep(@"Add button", () => container.Add(new TriangleButton
            {
                RelativeSizeAxes = Axes.X,
                Text             = @"Button",
            }));

            AddStep(@"Add checkbox", () => container.Add(new PlayerCheckbox
            {
                LabelText = "Checkbox",
            }));

            AddStep(@"Add textbox", () => container.Add(new FocusedTextBox
            {
                RelativeSizeAxes = Axes.X,
                Height           = 30,
                PlaceholderText  = "Textbox",
                HoldFocus        = false,
            }));
        }
Ejemplo n.º 15
0
        public void CheckTransientIsDefault()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            var instance = container.Resolve<IRepository>();

            Assert.That(container.Resolve<IRepository>(), Is.Not.SameAs(instance));
        }
Ejemplo n.º 16
0
        public void CheckSingltonIsCreated()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>(LifestyleType.Singleton);
            var instance = container.Resolve<IRepository>();

            Assert.That(container.Resolve<IRepository>(), Is.SameAs(instance));
        }
Ejemplo n.º 17
0
        public void CheckResolveObject()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            var instance = container.Resolve<IRepository>();

            Assert.That(instance, Is.InstanceOf<Repository>());
        }
Ejemplo n.º 18
0
    private static void saveExamples(string path, ExampleContainer examples)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(ExampleContainer));
        FileStream    stream     = new FileStream(path, FileMode.Truncate);

        serializer.Serialize(stream, examples);
        stream.Close();
    }
Ejemplo n.º 19
0
        public void CheckExceptionThrownTypeNotRegistered()
        {
            ExampleContainer container = new ExampleContainer();

            Exception exception = null;
            try { container.Resolve<IRepository>(); }
            catch (Exception ex) { exception = ex; }
            Assert.That(exception, Is.InstanceOf<TypeNotRegisteredException>());
        }
Ejemplo n.º 20
0
        public void CheckObjectWithParametersResolves()
        {
            ExampleContainer container = new ExampleContainer();
            container.Register<IRepository, Repository>();
            container.Register<IRepositoryWithParams, RepositoryWithParams>();
            var instance = container.Resolve<IRepositoryWithParams>();

            Assert.That(instance, Is.InstanceOf<IRepositoryWithParams>());
        }
        public void GivenAnInteraceAndClassThatUsesIt_ContainerReturnsInstance()
        {
            var container = new ExampleContainer();

            container.Register <ISimple, Simple>();

            var actualInstance = container.Create <ISimple>();

            actualInstance.Message = "test";

            Assert.IsType <Simple>(actualInstance);
        }
        public void GivenTwoInterfacesAndOneImplementationHasADependencyOnTheOther_InstanceIsCreated()
        {
            var container = new ExampleContainer();

            container.Register <ISimpleTwo, SimpleTwo>();
            container.Register <ISimpleLogger, SimpleLogger>();

            var actualInstance = container.Create <ISimpleTwo>();

            Assert.IsType <SimpleTwo>(actualInstance);
            Assert.IsType <SimpleLogger>((actualInstance as SimpleTwo).CheckLogger);
        }
Ejemplo n.º 23
0
 private static void saveExamples(string path, ExampleContainer examples)
 {
     //XmlSerializer serializer = new XmlSerializer(typeof(ExampleContainer));
     try {
         FileStream stream = new FileStream(path, FileMode.CreateNew);
         Serializer.Serialize <ExampleContainer>(stream, examples);
         stream.Close();
     } catch (IOException e)
     {
         FileStream stream = new FileStream(path, FileMode.Truncate);
         Serializer.Serialize <ExampleContainer>(stream, examples);
         stream.Close();
     }
 }
Ejemplo n.º 24
0
    // Use this for initialization
    void Start()
    {
        if (!ProtoBuf.Meta.RuntimeTypeModel.Default.IsDefined(typeof(Vector2)))
        {
            ProtoBuf.Meta.RuntimeTypeModel.Default.Add(typeof(Vector2), false).Add("x", "y");
        }
        new ReadText();
        Debug.Log("End of code; finished");
        Debug.Log("hejhej");
        ExampleContainer exampleContainer = Serializer.Deserialize <ExampleContainer>(
            new FileStream(@"C:\Users\David\Documents\GitHub\Kex\DatabaseTest2\xmlTest.proto", FileMode.Open, FileAccess.Read));

        Debug.Log(exampleContainer.examples[10].frames[38].subject.localPosition.y);
        Debug.Log(exampleContainer.examples.Count);
    }
        public void ItShouldReturnDataFromSql()
        {
            // Arrange
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, TestHelpers.ConfigureWebApi )
                    )
            {
                // Act 
                IEnumerable<Driver> response =
                        container.Drivers.Execute();


                // Assert 
                Assert.AreEqual( 3, response.Count() );
            }
        }
        public void ItShouldReturnDataFromSql()
        {
            // Arrange
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, TestHelpers.ConfigureWebApi)
                   )
            {
                // Act
                IEnumerable <Driver> response =
                    container.Drivers.Execute();


                // Assert
                Assert.AreEqual(3, response.Count());
            }
        }
        public void IfNewCarHasZeroIdItReturnsBadRequest()
        {
            // Arrange
            var errorCar = TestHelpers.Fixture.Create <Data.Models.Car>();

            errorCar.Id = 0;
            var service = new Mock <ICarService>();

            service.Setup(m => m.Create(It.IsAny <Data.Models.Car>()))
            .ReturnsAsync(errorCar);

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                try
                {
                    container.AddToCars(new Car
                    {
                        Name  = "Hakosuka",
                        Make  = "Nissan",
                        Model = "Skyline GTR",
                        Year  = 1996
                    });
                    container.SaveChanges();
                }
                catch (DataServiceRequestException exception)
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull(inner);
                    Assert.AreEqual((int)HttpStatusCode.BadRequest, inner.StatusCode);
                    return;
                }
                // Assert
                Assert.Fail("Exception not caught.");
            }
        }
Ejemplo n.º 28
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            var container = new ExampleContainer();

            services.AddDbContext <ExampleDbContext>(options =>
            {
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
            });

            container.Configure(config =>
            {
                config.For <ExampleUnitOfWork>().Transient();

                config.Scan(s =>
                {
                    s.AssemblyContainingType <UserMapperProfile>();

                    s.Include(
                        t =>
                        !t.GetTypeInfo().IsAbstract&& !t.GetTypeInfo().IsGenericTypeDefinition&&
                        typeof(Profile).IsAssignableFrom(t));
                    s.Convention <BaseTypeConvention>();
                });

                config.For <MapperConfiguration>().Use(o => new MapperConfiguration(c => SetMapperConfiguration(o, c))).Singleton();
                config.For <AutoMapper.IConfigurationProvider>().Use(o => o.GetInstance <MapperConfiguration>()).Singleton();
                config.For <IMapper>().Use(o => o.GetInstance <MapperConfiguration>().CreateMapper()).Singleton();

                config.For <IPersonRepository>().Use <PersonRepository>();
                config.For <IPersonService>().Use <PersonService>();

                config.For <eQuantic.Core.Ioc.IContainer>()
                .UseInstance(new ObjectInstance(container));

                config.Populate(services);
            });
            // Add framework services.
            services.AddMvc();

            return(container.GetInstance <IServiceProvider>());
        }
        public void ByKeyShouldReturnASingleCar()
        {
            // Arrange
            var service = new Mock<ICarService>();
            service.Setup( m => m.Find( It.IsAny<int>() ) )
                    .ReturnsAsync( TestHelpers.Fixture.Create<Data.Models.Car>() );

            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) )
                    )
            {
                // Act 
                var response = container.Cars.ByKey( 5 ).GetValue();


                // Assert 
                Assert.IsNotNull( response );
                service.Verify( m => m.Find( It.Is<int>( i => i == 5 ) ), Times.Once );
            }
        }
        public void IfInvalidCarItReturnsNotFound()
        {
            // Arrange
            var service = new Mock <ICarService>();

            service.Setup(m => m.FindAll())
            .Returns(TestHelpers.Fixture.CreateMany <Car>().AsQueryable());
            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(null);

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                try
                {
                    // Act
                    Client.Example.Data.Models.Car first = container.Cars.Execute().First();
                    first.Make = "FOO";
                    container.UpdateObject(first);
                    container.SaveChanges(SaveChangesOptions.ReplaceOnUpdate);
                }
                catch (DataServiceRequestException exception)
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull(inner);
                    Assert.AreEqual((int)HttpStatusCode.NotFound, inner.StatusCode);
                    service.Verify(x => x.Update(It.IsAny <Car>()), Times.Never);
                    return;
                }
            }

            Assert.Fail("Exception not caught.");
        }
        public void ItSavesNewCar()
        {
            // Arrange
            var newCar = new Car
            {
                Name  = "Hakosuka",
                Make  = "Nissan",
                Model = "Skyline GTR",
                Year  = 1996
            };

            var service = new Mock <ICarService>();

            service.Setup(m => m.Create(It.IsAny <Data.Models.Car>()))
            .ReturnsAsync(TestHelpers.Fixture.Create <Data.Models.Car>());

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                container.AddToCars(newCar);
                ChangeOperationResponse response = container.SaveChanges().Cast <ChangeOperationResponse>().First();
                var entityDescriptor             = (EntityDescriptor)response.Descriptor;
                var actual =
                    (Car)entityDescriptor.Entity;

                // Assert
                Assert.AreEqual((int)HttpStatusCode.Created, response.StatusCode);
                service.Verify(m => m.Create(It.IsAny <Data.Models.Car>()), Times.Once);
                Assert.IsNotNull(actual);
            }
        }
        public void IfMissingRequiredFieldsItReturnsBadRequest()
        {
            // Arrange
            var badCar = new Car
                         {
                                 Name = "Empty"
                         };

            var service = new Mock<ICarService>();
            service.Setup( m => m.Create( It.IsAny<Data.Models.Car>() ) )
                    .ReturnsAsync( TestHelpers.Fixture.Create<Data.Models.Car>() );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act
                try
                {
                    container.AddToCars( badCar );
                    container.SaveChanges();
                }
                catch ( DataServiceRequestException exception )
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull( inner );
                    Assert.AreEqual( (int) HttpStatusCode.BadRequest, inner.StatusCode );
                    return;
                }
                // Assert
                Assert.Fail( "Exception not caught." );
            }
        }
        public void ItUpdatesTheCar()
        {
            // Arrange
            var storedCar = TestHelpers.Fixture.Create <Car>();
            var service   = new Mock <ICarService>();

            service.Setup(m => m.Find(It.IsAny <int>())).ReturnsAsync(storedCar);
            service.Setup(m => m.Update(It.IsAny <Car>())).ReturnsAsync(storedCar);

            // Bind our mock with Ninject
            var kernel = new StandardKernel();

            kernel.Bind <ICarService>().ToConstant(service.Object);
            var container = new ExampleContainer(new Uri(BaseAddress));

            using (WebApp.Start(BaseAddress, app => TestHelpers.ConfigureWebApi(app, kernel)))
            {
                // Act
                Client.Example.Data.Models.Car target = container.Cars.ByKey(storedCar.Id).GetValue();
                target.Name = TestHelpers.Fixture.Create <string>();
                container.UpdateObject(target);
                ChangeOperationResponse response =
                    container.SaveChanges(SaveChangesOptions.ReplaceOnUpdate)
                    .Cast <ChangeOperationResponse>()
                    .First();
                var entityDescriptor = (EntityDescriptor)response.Descriptor;
                var actual           = (Client.Example.Data.Models.Car)entityDescriptor.Entity;

                // Assert
                Assert.AreEqual((int)HttpStatusCode.NoContent, response.StatusCode);
                Assert.IsNotNull(actual);
                Assert.AreEqual(storedCar.Make, actual.Make);
                Assert.AreEqual(storedCar.Model, actual.Model);
                Assert.AreEqual(storedCar.Year, actual.Year);
            }
        }
Ejemplo n.º 34
0
 public void CheckObjectsRegistered()
 {
     ExampleContainer container = new ExampleContainer();
     container.Register<IRepository, Repository>();
     Assert.That(container.IsTypeRegistered<IRepository>());
 }
        public void ItReturnsNotFoundIfCarIsntFound()
        {
            // Arrange
            var service = new Mock<ICarService>();
            service.Setup( m => m.FindAll() ).Returns( TestHelpers.Fixture.CreateMany<Data.Models.Car>().AsQueryable() );
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( null );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );

            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                // Act
                var target = container.Cars.First();
                container.DeleteObject( target );
                try
                {
                    container.SaveChanges();
                }
                catch ( DataServiceRequestException exception )
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull( inner );
                    Assert.AreEqual( (int) HttpStatusCode.NotFound, inner.StatusCode );
                    return;
                }

                // Assert
                Assert.Fail( "Exception not caught." );
            }
        }
Ejemplo n.º 36
0
 public static void save(string path, ExampleContainer examples)
 {
     saveExamples(path, examples);
 }
        public void IfInvalidCarItReturnsNotFound()
        {
            // Arrange
            var service = new Mock<ICarService>();
            service.Setup( m => m.FindAll() )
                    .Returns( TestHelpers.Fixture.CreateMany<Car>().AsQueryable() );
            service.Setup( m => m.Find( It.IsAny<int>() ) ).ReturnsAsync( null );

            // Bind our mock with Ninject
            var kernel = new StandardKernel();
            kernel.Bind<ICarService>().ToConstant( service.Object );
            var container = new ExampleContainer( new Uri( BaseAddress ) );
            using ( WebApp.Start( BaseAddress, app => TestHelpers.ConfigureWebApi( app, kernel ) ) )
            {
                try
                {
                    // Act
                    Client.Example.Data.Models.Car first = container.Cars.Execute().First();
                    first.Make = "FOO";
                    container.UpdateObject( first );
                    container.SaveChanges( SaveChangesOptions.ReplaceOnUpdate );
                }
                catch ( DataServiceRequestException exception )
                {
                    var inner = exception.InnerException as DataServiceClientException;
                    Assert.IsNotNull( inner );
                    Assert.AreEqual( (int) HttpStatusCode.NotFound, inner.StatusCode );
                    service.Verify( x => x.Update( It.IsAny<Car>() ), Times.Never );
                    return;
                }
            }

            Assert.Fail( "Exception not caught." );
        }
        public void GivenAnInterfaceIsntRegistered_throwsASimpleContainerException()
        {
            var container = new ExampleContainer();

            Assert.Throws <SimpleContainerException>(() => container.Create <ISimple>());
        }