public void Should_Add_Value_For_New_Culture()
        {
            EntityWithMcs entity = null;

            Execute(inContextOf: arrange =>
            {
                entity = new EntityWithMcs();

                entity.McsPropertyOne[PolishCulture] = "Po polsku";
                entity.McsPropertyOne[EnglishCulture] = "In english";

                arrange.Save(entity);
            });

            Execute(inContextOf: act =>
            {
                entity = act.Get<EntityWithMcs>(entity.Id);
                entity.McsPropertyOne[GermanCulture] = "auf deutsch";

                act.SaveOrUpdate(entity);
            });

            Execute(inContextOf: assert =>
            {
                entity = assert.Get<EntityWithMcs>(entity.Id);
                Assert.That(entity.McsPropertyOne[GermanCulture], Is.EqualTo("auf deutsch"));
            });
        }
        private static void PrepareUnsortedAndDistinctData(ISession arrange)
        {
            var secondEntity = new EntityWithMcs();
            var firstEntity = new EntityWithMcs();

            secondEntity.McsPropertyOne[PolishCulture] = "b";
            firstEntity.McsPropertyOne[PolishCulture] = "a";

            arrange.Save(secondEntity);
            arrange.Save(firstEntity);
        }
        public void Should_Persist_Entity_With_Two_Multi_Culture_Strings()
        {
            EntityWithMcs entity = null;

            Execute(inContextOf: act =>
            {
                entity = new EntityWithMcs();

                entity.McsPropertyOne[PolishCulture] = PolishData;
                entity.McsPropertyOne[EnglishCulture] = EnglishData;

                entity.McsPropertyTwo[PolishCulture] = PolishData;
                entity.McsPropertyTwo[EnglishCulture] = EnglishData;

                act.Save(entity);
            });

            Execute(inContextOf: assert =>
            {
                entity = assert.Get<EntityWithMcs>(entity.Id);

                Assert.That(entity.McsPropertyOne[PolishCulture], Is.EqualTo(PolishData));
                Assert.That(entity.McsPropertyTwo[PolishCulture], Is.EqualTo(PolishData));

                Assert.That(entity.McsPropertyOne[EnglishCulture], Is.EqualTo(EnglishData));
                Assert.That(entity.McsPropertyTwo[EnglishCulture], Is.EqualTo(EnglishData));
            });
        }
        public void Should_Update_Multi_Culture_String_Value_In_One_Culture_And_Not_Update_In_The_Other()
        {
            EntityWithMcs entity = null;

            Execute(inContextOf: arrange =>
            {
                entity = new EntityWithMcs();

                entity.McsPropertyOne[PolishCulture] = "Po polsku";
                entity.McsPropertyOne[EnglishCulture] = "in english";

                arrange.Save(entity);
            });

            Execute(inContextOf: act =>
            {
                entity = act.Get<EntityWithMcs>(entity.Id);
                entity.McsPropertyOne[PolishCulture] = "nowe dane";
            });

            Execute(inContextOf: assert =>
            {
                entity = assert.Get<EntityWithMcs>(entity.Id);

                Assert.That(entity.McsPropertyOne[PolishCulture], Is.EqualTo("nowe dane"));
                Assert.That(entity.McsPropertyOne[EnglishCulture], Is.EqualTo("in english"));
            });
        }
        public void Should_Persist_Entity()
        {
            EntityWithMcs entity = null;

            Execute(inContextOf: act =>
            {
                entity = new EntityWithMcs();
                act.Save(entity);
            });

            Execute(inContextOf: assert =>
            {
                entity = assert.Get<EntityWithMcs>(entity.Id);
                Assert.That(entity.Id, Is.Not.EqualTo(0));
            });
        }