Exemplo n.º 1
0
        public void JoinGlobakKTable()
        {
            var source = new CancellationTokenSource();
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-config";
            config.PollMs        = 10;
            var topicConfiguration = config.Clone();

            topicConfiguration.ApplicationId = $"test-driver-{config.ApplicationId}";

            var builder = new StreamBuilder();

            var globalktable = builder.GlobalTable("test", InMemory <string, string> .As("global-store"));

            builder.Stream <string, string>("source")
            .Join(globalktable,
                  (k, v) => k,
                  (v1, v2) => $"{v1}-{v2}")
            .To("sink");

            var driver = new ClusterInMemoryTopologyDriver("client", builder.Build().Builder, config, topicConfiguration, TimeSpan.FromSeconds(1), source.Token);

            driver.StartDriver();

            var inputTest   = driver.CreateInputTopic("test", new StringSerDes(), new StringSerDes());
            var inputSource = driver.CreateInputTopic("source", new StringSerDes(), new StringSerDes());
            var output      = driver.CreateOutputTopic("sink", TimeSpan.FromSeconds(1), new StringSerDes(), new StringSerDes());

            inputTest.PipeInput("coucou", "Sylvain");
            Thread.Sleep(100);
            inputSource.PipeInput("coucou", "Coucou");
            Thread.Sleep(300);

            var records = IntegrationTestUtils.WaitUntilMinKeyValueRecordsReceived(output, 1);

            Assert.AreEqual(1, records.Count);
            Assert.AreEqual("Coucou-Sylvain", records.First().Message.Value);
            source.Cancel();
            driver.Dispose();
        }
Exemplo n.º 2
0
        public void GlobalTableWithStoreQueryable()
        {
            var builder = new StreamBuilder();

            var table  = builder.GlobalTable("topic", InMemory <string, string> .As("global-store"));
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-globaltable";

            Topology t = builder.Build();

            using (var driver = new TopologyTestDriver(t, config))
            {
                var inputTopic = driver.CreateInputTopic <string, string>("topic");
                inputTopic.PipeInput("test", "coucou");
                var store = driver.GetKeyValueStore <string, string>("global-store");
                var ele   = store.Get("test");
                Assert.IsNotNull(ele);
                Assert.AreEqual("coucou", ele);
            }
        }
        public void TestAdd()
        {
            // Arrange
            var harness  = new InMemory();
            var expected = new Blab {
                Id               = 1,
                CreatedBy        = -1,
                CreatedDate      = DateTime.Now,
                LastModifiedBy   = null,
                LastModifiedDate = null,
                Message          = "This is a really cool app!",
                UserId           = 1
            };

            // Act
            harness.Create(expected);
            var actual = harness.Read(0);

            // Assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 4
0
        public void Init()
        {
            token1 = new System.Threading.CancellationTokenSource();
            token2 = new System.Threading.CancellationTokenSource();

            config.ApplicationId = "test-stream-thread";
            config.StateDir      = Path.Combine(".", Guid.NewGuid().ToString());
            config.Guarantee     = ProcessingGuarantee.AT_LEAST_ONCE;
            config.PollMs        = 10;

            mockKafkaSupplier = new MockKafkaSupplier(2, 0);

            var builder = new StreamBuilder();

            builder.Table("topic", InMemory <string, string> .As("store").WithLoggingEnabled());

            var topo = builder.Build();

            topo.Builder.RewriteTopology(config);
            topo.Builder.BuildTopology();

            thread1 = StreamThread.Create(
                "thread-0", "c0",
                topo.Builder, new StreamMetricsRegistry(), config,
                mockKafkaSupplier, mockKafkaSupplier.GetAdmin(config.ToAdminConfig("admin")),
                0) as StreamThread;

            thread2 = StreamThread.Create(
                "thread-1", "c1",
                topo.Builder, new StreamMetricsRegistry(), config,
                mockKafkaSupplier, mockKafkaSupplier.GetAdmin(config.ToAdminConfig("admin")),
                1) as StreamThread;

            var internalTopicManager =
                new DefaultTopicManager(config, mockKafkaSupplier.GetAdmin(config.ToAdminConfig("admin")));

            InternalTopicManagerUtils
            .New()
            .CreateInternalTopicsAsync(internalTopicManager, topo.Builder).GetAwaiter();
        }
Exemplo n.º 5
0
        public async Task CreateAsync_ShouldReturnModifiedBreweryDTOAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("CreateAsync_ShouldReturnModifiedBreweryDTOAsync");

            using (var context = new BOContext(options))
            {
                var country = new Country()
                {
                    Name      = "Bulgaria",
                    Breweries = new List <Brewery>()
                    {
                        new Brewery()
                        {
                            Name = "Brewery"
                        }
                    }
                };
                context.Countries.Add(country);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                var breweryDTO = new BreweryDTO()
                {
                    Name    = "Brewery",
                    Country = "Bulgaria"
                };
                //Act
                var sut    = new BreweryServices(context);
                var result = await sut.CreateAsync(breweryDTO);

                var dbresult = await context.Breweries.FirstOrDefaultAsync(c => c.Name == "Brewery");

                //Assert
                Assert.AreEqual(result.ID, dbresult.ID);
                Assert.AreEqual(result.Name, dbresult.Name);
            }
        }
Exemplo n.º 6
0
        public async Task GetAsync_ShouldReturnNullIfBreweryModelConversionFailsAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("GetAsync_ShouldReturnNullIfBreweryModelConversionFailsAsync");

            using (var context = new BOContext(options))
            {
                var brewery = new Brewery();
                context.Breweries.Add(brewery);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new BreweryServices(context);
                var result = await sut.GetAsync(1);

                //Assert
                Assert.AreEqual(result, null);
            }
        }
        public async Task GetAsync_ShouldReturnNullIfModelStyleConversionFailsAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("GetAsync_ShouldReturnNullIfModelStyleConversionFailsAsync");

            using (var context = new BOContext(options))
            {
                var style = new BeerStyle();
                context.BeerStyles.Add(style);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new BeerStylesService(context);
                var result = await sut.GetAsync(1);

                //Assert
                Assert.AreEqual(result, null);
            }
        }
        public void KTableSourceKeyNull()
        {
            var builder = new StreamBuilder();

            builder.Table("table-topic", InMemory <string, string> .As("table-topic-store"));

            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-map";

            Topology t = builder.Build();

            using var driver = new TopologyTestDriver(t, config);
            var inputTopic = driver.CreateInputTopic <string, string>("table-topic");

            inputTopic.PipeInput(null, "1");

            var store = driver.GetKeyValueStore <string, string>("table-topic-store");

            Assert.IsNotNull(store);
            Assert.AreEqual(0, store.ApproximateNumEntries());
        }
        public void GetStateStoreExist()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-config";

            var builder = new StreamBuilder();

            builder.Table <string, string>("test", InMemory <string, string> .As("store"));

            var driver = new TaskSynchronousTopologyDriver("client", builder.Build().Builder, config, config, default);
            var input  = driver.CreateInputTopic("test", new StringSerDes(), new StringSerDes());
            var store  = driver.GetStateStore <string, string>("store");

            Assert.IsNotNull(store);
            Assert.IsInstanceOf <ReadOnlyKeyValueStore <string, ValueAndTimestamp <string> > >(store);
            input.PipeInput("coucou", "1");

            Assert.AreEqual(1, ((ReadOnlyKeyValueStore <string, ValueAndTimestamp <string> >)store).All().Count());
            Assert.AreEqual("1", ((ReadOnlyKeyValueStore <string, ValueAndTimestamp <string> >)store).Get("coucou").Value);
            driver.Dispose();
        }
Exemplo n.º 10
0
        public void KeySerdesUnknow()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-count";

            var builder = new StreamBuilder();

            builder
            .Stream <string, string>("topic")
            .GroupBy((k, v) => k.ToCharArray()[0])
            .Count(InMemory <char, long> .As("count-store"));

            var topology = builder.Build();

            Assert.Throws <StreamsException>(() =>
            {
                using var driver = new TopologyTestDriver(topology, config);
                var input        = driver.CreateInputTopic <string, string>("topic");
                input.PipeInput("test", "1");
            });
        }
Exemplo n.º 11
0
        public void KTableToStreamWithDelete()
        {
            var builder = new StreamBuilder();

            builder.Table("table-topic", InMemory <string, string> .As("table-topic-store"))
            .ToStream().To("table-stream");

            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-map";

            Topology t = builder.Build();

            using var driver = new TopologyTestDriver(t, config);
            var inputTopic  = driver.CreateInputTopic <string, string>("table-topic");
            var outputTopic = driver.CreateOuputTopic <string, string>("table-stream");
            var expected    = new List <KeyValuePair <string, string> >();

            expected.Add(KeyValuePair.Create("key1", "a"));
            expected.Add(KeyValuePair.Create("key2", "b"));
            expected.Add(KeyValuePair.Create("key2", (string)null));

            inputTopic.PipeInput("key1", "a");
            inputTopic.PipeInput("key2", "b");
            inputTopic.PipeInput("key2", null);

            var store = driver.GetKeyValueStore <string, string>("table-topic-store");

            Assert.IsNotNull(store);
            var resultK1 = store.Get("key1");
            var resultK2 = store.Get("key2");

            Assert.AreEqual("a", resultK1);
            Assert.AreEqual(null, resultK2);

            var results = outputTopic.ReadKeyValueList().Select(r => KeyValuePair.Create(r.Message.Key, r.Message.Value));

            Assert.AreEqual(expected, results);
        }
Exemplo n.º 12
0
        public async Task GetAllAsync_ShouldReturnNullIfModelHasNoNameFailsAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("GetAllAsync_ShouldReturnNullIfModelHasNoNameFailsAsync");

            using (var context = new BOContext(options))
            {
                var country = new Country();
                context.Countries.Add(country);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new CountriesService(context);
                var result = await sut.GetAllAsync();

                //Assert
                Assert.AreEqual(result, null);
            }
        }
Exemplo n.º 13
0
        public async Task GetAllAsync_ShouldReturnNullIfModelReviewHasNoBeerOrUserFailsAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("GetAllAsync_ShouldReturnNullIfModelReviewHasNoBeerOrUserFailsAsync");

            using (var context = new BOContext(options))
            {
                var review = new Review();
                context.Reviews.Add(review);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new ReviewsService(context);
                var result = await sut.GetAllAsync();

                //Assert
                Assert.AreEqual(result, null);
            }
        }
        public void TableTableJoinStateStore()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>
            {
                ApplicationId = "test-table-table-join"
            };

            StreamBuilder builder = new StreamBuilder();

            var table1 = builder.Table("table1", InMemory <string, string> .As("store1"));
            var table2 = builder.Table("table2", InMemory <string, string> .As("store2"));

            var tableJoin = table1.Join(table2, (v1, v2) => $"{v1}-{v2}", InMemory <string, string> .As("merge-store"));

            tableJoin.ToStream().To("topic-output");

            Topology t = builder.Build();

            using (var driver = new TopologyTestDriver(t, config))
            {
                var inputTopic1 = driver.CreateInputTopic <string, string>("table1");
                var inputTopic2 = driver.CreateInputTopic <string, string>("table2");
                var outputTopic = driver.CreateOuputTopic <string, string>("topic-output");
                inputTopic1.PipeInput("test", "test");
                inputTopic2.PipeInput("test", "coucou");

                var st1        = driver.GetKeyValueStore <string, string>("store1");
                var st2        = driver.GetKeyValueStore <string, string>("store2");
                var mergeStore = driver.GetKeyValueStore <string, string>("merge-store");

                Assert.AreEqual(1, st1.ApproximateNumEntries());
                Assert.AreEqual(1, st2.ApproximateNumEntries());
                Assert.AreEqual(1, mergeStore.ApproximateNumEntries());

                Assert.AreEqual("test", st1.Get("test"));
                Assert.AreEqual("coucou", st2.Get("test"));
                Assert.AreEqual("test-coucou", mergeStore.Get("test"));
            }
        }
        public void Update_Success()
        {
            // Arrange
            var mockDbSet = new Mock <DbSet <TestEntity> >();

            mockDbSet.Setup(d => d.Update(It.IsAny <TestEntity>()));

            var mockContext = new Mock <IContext>();

            mockContext.Setup(c => c.Set <TestEntity>()).Returns(mockDbSet.Object);
            mockContext.Setup(c => c.SaveChanges());

            var inMemory = new InMemory <TestEntity>(mockContext.Object);

            // Act
            inMemory.Update(new TestEntity());

            // Assert
            mockDbSet.Verify(d => d.Update(It.IsAny <TestEntity>()), Times.Once);
            mockContext.Verify(c => c.Set <TestEntity>(), Times.Once);
            mockContext.Verify(c => c.SaveChanges(), Times.Once);
        }
Exemplo n.º 16
0
        public void DeleteUserShould_ReturnTrue_whenDeletedUser()
        {
            //Arrange
            var options = InMemory.GetOptions("DeleteUserShould_ReturnTrue_whenDeletedUser");

            using (var context = new BOContext(options))
            {
                var cut = new User()
                {
                    Id       = 1,
                    Name     = "SuperMan",
                    Password = "******",
                };

                var user = new User()
                {
                    Id       = 2,
                    Name     = "Batman",
                    Password = "******",
                };
                context.Users.Add(cut);
                context.Users.Add(user);
                context.SaveChanges();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new UsersService(context);
                var result = sut.DeleteUser(1).Result;
                //Assert
                var deletedUsers = context.Users.Where(u => u.IsDeleted == true).Count();
                var activeUsers  = context.Users.Where(u => u.IsDeleted == false).Count();
                Assert.IsTrue(result);
                Assert.AreEqual(1, deletedUsers);
                Assert.AreEqual(1, activeUsers);
            }
        }
        public void KTableSourceDelete()
        {
            var builder = new StreamBuilder();

            builder.Table("table-topic", InMemory <string, string> .As("table-topic-store"));

            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-map";

            Topology t = builder.Build();

            using var driver = new TopologyTestDriver(t, config);
            var inputTopic = driver.CreateInputTopic <string, string>("table-topic");

            inputTopic.PipeInput("key1", "1");
            inputTopic.PipeInput("key2", "2");

            var store = driver.GetKeyValueStore <string, string>("table-topic-store");

            Assert.IsNotNull(store);

            var resultK1 = store.Get("key1");
            var resultK2 = store.Get("key2");

            Assert.AreEqual(2, store.All().Count());
            Assert.AreEqual("1", resultK1);
            Assert.AreEqual("2", resultK2);

            inputTopic.PipeInput("key1", null);

            resultK1 = store.Get("key1");
            resultK2 = store.Get("key2");

            Assert.AreEqual(1, store.All().Count());
            Assert.AreEqual(null, resultK1);
            Assert.AreEqual("2", resultK2);
        }
        public void TableTableJoinGetterSupplier()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>
            {
                ApplicationId = "test-table-table-join"
            };

            StreamBuilder builder = new StreamBuilder();

            var table1 = builder.Table("users", InMemory <string, string> .As("store-users"));
            var table2 = builder.Table("regions", InMemory <string, string> .As("store-regions"));
            var stream = builder.Stream <string, string>("orders");

            var tableJoin = table1.Join(table2, (v1, v2) => $"{v1}-{v2}");

            stream
            .Join(tableJoin, (order, ur) => $"Order:{order}|UserRegion:{ur}")
            .To("topic-output");

            Topology t = builder.Build();

            using (var driver = new TopologyTestDriver(t, config))
            {
                var inputTopic1 = driver.CreateInputTopic <string, string>("users");
                var inputTopic2 = driver.CreateInputTopic <string, string>("regions");
                var inputTopic3 = driver.CreateInputTopic <string, string>("orders");
                var outputTopic = driver.CreateOuputTopic <string, string>("topic-output");

                inputTopic1.PipeInput("sylvain", "sylvain");
                inputTopic2.PipeInput("sylvain", "France");
                inputTopic3.PipeInput("sylvain", "iPhone12Pro");

                var record = outputTopic.ReadKeyValue();
                Assert.IsNotNull(record);
                Assert.AreEqual("sylvain", record.Message.Key);
                Assert.AreEqual("Order:iPhone12Pro|UserRegion:sylvain-France", record.Message.Value);
            }
        }
Exemplo n.º 19
0
        public async void process(IConfiguration config)
        {
            var sConfig = new StreamConfig <StringSerDes, StringSerDes>();

            sConfig.ApplicationId    = config["SPRING_CLOUD_APPLICATION_GUID"];
            sConfig.BootstrapServers = config["SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS"];

            StreamBuilder builder = new StreamBuilder();

            var table = builder.Table("product",
                                      new StringSerDes(),
                                      new StringSerDes(),
                                      InMemory <String, String> .As("product-store"));

            builder.Stream <String, String, StringSerDes, StringSerDes>(config["spring.cloud.stream.bindings.input.destination"])
            .Join(table, (order, product) => order + product)
            .To(config["spring.cloud.stream.bindings.output.destination"]);

            Topology    t      = builder.Build();
            KafkaStream stream = new KafkaStream(t, sConfig);

            await stream.StartAsync();
        }
Exemplo n.º 20
0
        public async Task UpdateAsync_ShouldReturnNullIfCountryNonExistantAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("UpdateAsync_ShouldReturnNullIfCountryNonExistantAsync");

            using (var context = new BOContext(options))
            {
            }

            using (var context = new BOContext(options))
            {
                var countryDTO = new CountryDTO()
                {
                    Name = "Bulgaria"
                };
                //Act
                var sut    = new CountriesService(context);
                var result = await sut.UpdateAsync(1, countryDTO);

                //Assert
                Assert.AreEqual(result, null);
            }
        }
Exemplo n.º 21
0
        public async Task CreateAsync_ShouldReturnCountryDTOAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("CreateAsync_ShouldReturnCountryDTOAsync");

            using (var context = new BOContext(options))
            {
            }

            using (var context = new BOContext(options))
            {
                var countryDTO = new CountryDTO()
                {
                    Name = "Bulgaria"
                };
                //Act
                var sut    = new CountriesService(context);
                var result = await sut.CreateAsync(countryDTO);

                //Assert
                Assert.IsInstanceOfType(result, typeof(CountryDTO));
            }
        }
Exemplo n.º 22
0
        public async Task CreateAsync_ShouldReturnBreweryDTOAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("CreateAsync_ShouldReturnBreweryDTOAsync");

            using (var context = new BOContext(options))
            {
                var country = new Country()
                {
                    Name      = "Bulgaria",
                    Breweries = new List <Brewery>()
                    {
                        new Brewery()
                        {
                            Name = "Brewery"
                        }
                    }
                };
                context.Countries.Add(country);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                var breweryDTO = new BreweryDTO()
                {
                    Name    = "Brewery",
                    Country = "Bulgaria"
                };
                //Act
                var sut    = new BreweryServices(context);
                var result = await sut.CreateAsync(breweryDTO);

                //Assert
                Assert.IsInstanceOfType(result, typeof(BreweryDTO));
            }
        }
        public void Reduce5()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-count";

            var builder = new StreamBuilder();

            builder
            .Stream <string, string>("topic")
            .GroupBy((k, v) => k?.ToUpper())
            .Reduce(
                new MyReducer(),
                InMemory <string, string> .As("reduce-store"),
                "reduce-processor");

            var topology = builder.Build();

            using var driver = new TopologyTestDriver(topology, config);
            var input = driver.CreateInputTopic <string, string>("topic");

            input.PipeInput("test", "1");
            input.PipeInput("test", null);
            input.PipeInput(null, "34");
            input.PipeInput(null, null);
            input.PipeInput("test", "12");

            var store = driver.GetKeyValueStore <string, string>("reduce-store");

            Assert.IsNotNull(store);
            // null doesn't matter
            Assert.AreEqual(1, store.ApproximateNumEntries());
            var el = store.Get("TEST");

            Assert.IsNotNull(el);
            Assert.AreEqual("12", el);
        }
Exemplo n.º 24
0
        public async Task DeleteAsync_ShouldDeleteCommentIfExist()
        {
            //Arrange
            var options = InMemory.GetOptions("DeleteAsync_ShouldDeleteCommentIfExist");

            using (var context = new BOContext(options))
            {
                var comment = new Comment
                {
                    Description = "Gotham",
                    User        = new User()
                    {
                        Name = "Batman"
                    },
                    Review = new Review()
                    {
                        Description = "Description"
                    }
                };
                context.Comments.Add(comment);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut = new CommentService(context);
                await sut.DeleteAsync(1);

                var dbresult = await context.Comments.FirstOrDefaultAsync(c => c.ReviewID == 1 && c.UserID == 1);

                //Assert
                Assert.AreEqual(dbresult.Description, "Gotham");
                Assert.AreEqual(dbresult.DeletedOn, dbresult.ModifiedOn);
                Assert.AreEqual(dbresult.IsDeleted, true);
            }
        }
Exemplo n.º 25
0
        private static void Main(string[] args)
        {
            InMemory myNewCache = new InMemory();

            string strFilePath = System.IO.Path.Combine(Environment.CurrentDirectory, "../../XmlFiles/ListOfUsers.xml");
            var    lstFiles    = new List <string>();

            lstFiles.Add(strFilePath);

            //for (int i = 1; i <= 100; i++)
            //{
            //    string cacheItem1 = "Steve Smith-" + i;
            //    myNewCache.AddToMyCache(i.ToString(CultureInfo.InvariantCulture), cacheItem1, MyCachePriority.NotRemovable, lstFiles);
            //}

            Console.WriteLine(DateTime.Now.ToString(CultureInfo.InvariantCulture));
            for (int i = 1; i <= 250000; i++)
            {
                var car = new Car("Blue" + i, i);
                myNewCache.AddToMyCache(
                    i.ToString(CultureInfo.InvariantCulture), car, MyCachePriority.NotRemovable, lstFiles);
            }

            var myItem10     = myNewCache.GetMyCachedItem("10") as Car;
            var myItem100    = myNewCache.GetMyCachedItem("100") as Car;
            var myItem1000   = myNewCache.GetMyCachedItem("1000") as Car;
            var myItem10000  = myNewCache.GetMyCachedItem("10000") as Car;
            var myItem100000 = myNewCache.GetMyCachedItem("100000") as Car;
            var myItem150000 = myNewCache.GetMyCachedItem("150000") as Car;
            var myItem200000 = myNewCache.GetMyCachedItem("200000") as Car;
            var myItem250000 = myNewCache.GetMyCachedItem("250000") as Car;

            Console.WriteLine(DateTime.Now.ToString(CultureInfo.InvariantCulture) + " (" + myNewCache.Count() + ")");
            while (Console.ReadLine() != "quit")
            {
            }
        }
        public async Task CreateAsync_ShouldUndeleteStyleRecordIfExist()
        {
            //Arrange
            var options = InMemory.GetOptions("CreateAsync_ShouldUndeleteStyleRecordIfExist");

            using (var context = new BOContext(options))
            {
                var style = new BeerStyle()
                {
                    Name        = "Ale",
                    Description = "This description",
                    DeletedOn   = DateTime.UtcNow,
                    IsDeleted   = true
                };
                context.BeerStyles.Add(style);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                var styleDTO = new BeerStyleDTO()
                {
                    Name        = "Ale",
                    Description = "This description"
                };
                //Act
                var sut = new BeerStylesService(context);
                await sut.CreateAsync(styleDTO);

                var dbresult = await context.BeerStyles.FirstOrDefaultAsync(c => c.Name == "Ale");

                //Assert
                Assert.AreEqual(dbresult.Name, "Ale");
                Assert.AreEqual(dbresult.DeletedOn, null);
                Assert.AreEqual(dbresult.IsDeleted, false);
            }
        }
Exemplo n.º 27
0
        public async Task UpdateAsync_ShouldReturnNullIfBeerNonExistantAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("UpdateAsync_ShouldReturnNullIfBeerNonExistantAsync");

            using (var context = new BOContext(options))
            {
            }

            using (var context = new BOContext(options))
            {
                var beerDTO = new BeerDTO()
                {
                    ABV     = 4.5f,
                    Rating  = 2,
                    Name    = "Carlsberg",
                    Country = new CountryDTO()
                    {
                        Name = "Germany"
                    },
                    Style = new BeerStyleDTO()
                    {
                        Name = "Ale"
                    },
                    Brewery = new BreweryDTO()
                    {
                        Name = "Brewery"
                    }
                };
                //Act
                var sut    = new BeerService(context);
                var result = await sut.UpdateAsync(1, beerDTO);

                //Assert
                Assert.AreEqual(result, null);
            }
        }
Exemplo n.º 28
0
        public void UpdateUserAsyncShould_ReturnCorrectUser()
        {
            //Arrange
            var options = InMemory.GetOptions("UpdateUserAsyncShould_ReturnCorrectUser");

            using (var context = new BOContext(options))
            {
                var cut = new User()
                {
                    Id          = 1,
                    Name        = "SuperMan",
                    Password    = "******",
                    ReviewList  = new List <Review>(),
                    CommentList = new List <Comment>(),
                    DrankLists  = new List <DrankList>(),
                    WishLists   = new List <WishList>(),
                };
                context.Users.Add(cut);
                context.SaveChanges();
            }
            var updatedUser = new UserDTO()
            {
                Name     = "Batman",
                Password = "******",
            };

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new UsersService(context);
                var result = sut.UpdateUserAsync(1, updatedUser).Result;
                //Assert
                Assert.AreEqual(updatedUser.Name, result.Name);
                Assert.AreEqual(updatedUser.Password, result.Password);
                //Assert.IsNotNull(result.ModifiedOn);
            }
        }
        public void TestGetWindowStoreKeyValueStore()
        {
            var config = new StreamConfig <StringSerDes, StringSerDes>();

            config.ApplicationId = "test-window-stream";

            var builder = new StreamBuilder();

            builder
            .Stream <string, string>("topic")
            .GroupByKey()
            .Count(InMemory <string, long> .As("count-store"));

            var topology = builder.Build();

            using var driver = new TopologyTestDriver(topology, config);
            DateTime dt    = DateTime.Now;
            var      input = driver.CreateInputTopic <string, string>("topic");

            input.PipeInput("test", "1", dt);
            var store = driver.GetWindowStore <string, long>("count-store");

            Assert.IsNull(store);
        }
Exemplo n.º 30
0
        public async Task GetAsync_ShouldReturnNullIfBeerModelConversionFailsAsync()
        {
            //Arrange
            var options = InMemory.GetOptions("GetAsync_ShouldReturnNullIfBeerModelConversionFailsAsync");

            using (var context = new BOContext(options))
            {
                var country = new Country()
                {
                    Name      = "Bulgaria",
                    Breweries = new List <Brewery>()
                    {
                        new Brewery()
                        {
                            Name  = "Brewery",
                            Beers = new List <Beer>()
                            {
                                new Beer()
                            }
                        }
                    }
                };
                context.Countries.Add(country);
                await context.SaveChangesAsync();
            }

            using (var context = new BOContext(options))
            {
                //Act
                var sut    = new BeerService(context);
                var result = await sut.GetAsync(1);

                //Assert
                Assert.AreEqual(result, null);
            }
        }