コード例 #1
0
        public async Task AssignSpeakerToPresentation_writes_to_databaseAsync()
        {
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            SpeakerProfile speaker = new SpeakerProfile
            {
                SpeakerId = Guid.NewGuid().ToString(),
                FirstName = "Test First Name",
                LastName  = "Test Last Name",
                Email     = "*****@*****.**",
                Bio       = "My test bio",
                Company   = "Test company",
                PhotoPath = "Test Path"
            };

            try
            {
                var options = new DbContextOptionsBuilder <PlanificatorDbContext>()
                              .UseSqlite(connection)
                              .Options;

                using (var context = new PlanificatorDbContext(options))
                {
                    context.Database.EnsureCreated();

                    var presentationService = new PresentationManager(context);
                    var speakerServie       = new SpeakerManager(context);

                    var testData = new PresentationRepositoryTestsData();

                    await speakerServie.AddSpeakerProfileAsync(speaker);

                    await presentationService.AddPresentation(testData.presentationTags);

                    await presentationService.AssignSpeakerToPresentationAsync(speaker, testData.presentation);

                    context.SaveChanges();

                    Assert.Equal(1, context.PresentationSpeakers.Count());
                    Assert.Equal(speaker, context.PresentationSpeakers.Single().SpeakerProfile);
                    Assert.Equal(testData.presentation, context.PresentationSpeakers.Include(p => p.Presentation).Single().Presentation);
                }
            }
            finally
            {
                connection.Close();
            }
        }