Ejemplo n.º 1
0
 void JsonDataをEntityに変換することができる()
 {
     var dataStoreMoq             = new Mock <IConnpassDataStore>();
     var connpassDataRepository   = new ConnpassReadOnlyWebsiteWebsiteDataRepository(dataStoreMoq.Object);
     var targetData               = new ConnpassEvent();
     ConnpassEventDataEntity item = connpassDataRepository.convert(targetData);
 }
        void コンパスから読み込まれたデータをDBに保存する()
        {
            var connpassDataRepositoryMoq     = new Mock <IConnpassReadOnlyWebsiteDataRepository>();
            var connpassDatabaseRepositoryMoq = new Mock <IConnpassDatabaseRepository>();
            var usecase = new RefreshConnpassDataUsecase(
                connpassDataRepositoryMoq.Object,
                connpassDatabaseRepositoryMoq.Object
                );

            var dummyData   = new List <ConnpassEventDataEntity>();
            var dummyEntity = new ConnpassEventDataEntity
            {
                Id          = 0,
                title       = "タイトル",
                event_url   = "www.yahoo.co.jp",
                Lat         = 1.1,
                Lon         = 1.1,
                description = "詳細"
            };

            dummyData.Add(dummyEntity);
            connpassDataRepositoryMoq.Setup(obj => obj.LoadConnpassData(0)).ReturnsAsync(dummyData);

            usecase.Execute();

            connpassDatabaseRepositoryMoq.Verify(obj => obj.SaveEventData(dummyData), Times.Once);
        }
Ejemplo n.º 3
0
        void イベントURLが存在しない場合は空文字が入っている(string dummyEventUrl)
        {
            var dataStoreMoq           = new Mock <IConnpassDataStore>();
            var connpassDataRepository = new ConnpassReadOnlyWebsiteWebsiteDataRepository(dataStoreMoq.Object);
            var targetData             = new ConnpassEvent
            {
                title = dummyEventUrl
            };
            ConnpassEventDataEntity item = connpassDataRepository.convert(targetData);

            Assert.Equal("", item.title);
        }
Ejemplo n.º 4
0
        void すでに同じIDを持つデータ存在していることを判定することができる()
        {
            using (var mock = new InmemoryDbTestMock <MeetupsApiContext>())
            {
                var context      = mock.Context();
                var targetEntity = new ConnpassEventDataEntity();
                context.ConnpassEventDataEntities.Add(targetEntity);
                context.SaveChanges();

                var target = new ConnpassDatabaseRepository(context);
                Assert.True(target.exitsEntity(targetEntity));
            }
        }
Ejemplo n.º 5
0
        void イベントデータを保存することができる()
        {
            using (var mock = new InmemoryDbTestMock <MeetupsApiContext>())
            {
                var connpassDatabaseRepository = new ConnpassDatabaseRepository(mock.Context());
                var dummyEventData             = new List <ConnpassEventDataEntity>();
                var entity = new ConnpassEventDataEntity();
                dummyEventData.Add(entity);
                connpassDatabaseRepository.SaveEventData(dummyEventData);

                Assert.Equal(1, mock.Context().ConnpassEventDataEntities.Count());
            }
        }
Ejemplo n.º 6
0
        void  換されたEntityにはURLが保存されている()
        {
            var dataStoreMoq           = new Mock <IConnpassDataStore>();
            var connpassDataRepository = new ConnpassReadOnlyWebsiteWebsiteDataRepository(dataStoreMoq.Object);
            var dummyEventUrl          = "www.yahoo.co.jp";
            var targetData             = new ConnpassEvent
            {
                event_url = dummyEventUrl
            };
            ConnpassEventDataEntity item = connpassDataRepository.convert(targetData);

            Assert.Equal(dummyEventUrl, item.event_url);
        }
Ejemplo n.º 7
0
        void  換されたDomainEntityにはタイトルが保存されている()
        {
            var dataStoreMoq           = new Mock <IConnpassDataStore>();
            var connpassDataRepository = new ConnpassReadOnlyWebsiteWebsiteDataRepository(dataStoreMoq.Object);
            var dummyTitle             = "";
            var targetData             = new ConnpassEvent
            {
                title = dummyTitle
            };
            ConnpassEventDataEntity item = connpassDataRepository.convert(targetData);

            Assert.Equal(dummyTitle, item.title);
        }
Ejemplo n.º 8
0
        void 重複するデータを書き込むと上書きされる()
        {
            using (var mock = new InmemoryDbTestMock <MeetupsApiContext>())
            {
                var connpassDatabaseRepository = new ConnpassDatabaseRepository(mock.Context());

                var dummyEventData = new List <ConnpassEventDataEntity>();
                var entity         = new ConnpassEventDataEntity
                {
                    Id    = 12,
                    title = "タイトル1"
                };

                dummyEventData.Add(entity);

                connpassDatabaseRepository.SaveEventData(dummyEventData);
            }

            using (var mock = new InmemoryDbTestMock <MeetupsApiContext>())
            {
                var connpassDatabaseRepository = new ConnpassDatabaseRepository(mock.Context());
                var dummyEventData2            = new List <ConnpassEventDataEntity>();
                var entity2 = new ConnpassEventDataEntity
                {
                    Id    = 12,
                    title = "タイトル2"
                };
                dummyEventData2.Add(entity2);

                connpassDatabaseRepository.SaveEventData(dummyEventData2);

                Assert.Equal(1, mock.Context().ConnpassEventDataEntities.Count());

                Assert.Equal(
                    entity2.title,
                    mock.Context().ConnpassEventDataEntities.First().title
                    );
            }
        }
Ejemplo n.º 9
0
        public ConnpassEventDataEntity convert(ConnpassEvent targetData)
        {
            var entity = new ConnpassEventDataEntity();

            entity.Id           = targetData.event_id;
            entity.title        = targetData.title ?? "";
            entity.event_url    = targetData.event_url ?? "";
            entity.description  = targetData.description ?? "";
            entity.catchMesagge = targetData._catch;
            entity.hash_tag     = targetData.hash_tag;
            entity.started_at   = targetData.started_at;
            entity.ended_at     = targetData.ended_at;


            int ToInt(
                string value,
                int defaultValue = 0)
            => int.TryParse(value, out var i) ? int.Parse(value) : defaultValue;

            entity.limit      = targetData.limit ?? 0;
            entity.accepted   = targetData.accepted;
            entity.waiting    = targetData.waiting;
            entity.updated_at = targetData.updated_at;

            entity.event_type         = targetData.event_type;
            entity.address            = targetData.address;
            entity.owned_id           = targetData.owner_id;
            entity.owned_nickname     = targetData.owner_nickname;
            entity.owner_display_name = targetData.owner_display_name;

            double ToDouble(
                string value,
                double defaultValue = double.MaxValue
                ) => double.TryParse(value, out var i) ? double.Parse(value) : defaultValue;

            entity.Lon = ToDouble(targetData.lon);
            entity.Lat = ToDouble(targetData.lat);
            return(entity);
        }
Ejemplo n.º 10
0
        void  じIDを持ったデータが存在していないことを判定することができる()
        {
            using (var mock = new InmemoryDbTestMock <MeetupsApiContext>())
            {
                var target = new ConnpassDatabaseRepository(mock.Context());

                var targetEntity = new ConnpassEventDataEntity
                {
                    Id = 114514
                };

                Assert.False(target.exitsEntity(targetEntity));

                var writingEntityList = new List <ConnpassEventDataEntity>();
                writingEntityList.Add(
                    new ConnpassEventDataEntity
                {
                    Id = 810
                }
                    );
                target.SaveEventData(writingEntityList);
                Assert.False(target.exitsEntity(targetEntity));
            }
        }
 public bool exitsEntity(ConnpassEventDataEntity entity) =>
 _meetupsApiContext.ConnpassEventDataEntities.Count(item => item.Id == entity.Id) != 0;