private static void DeserializeTemplate(DataStorage dataStorage, ID templateId, string serializationFolderName)
    {
      var filePath = templateId.FindFilePath(serializationFolderName);

      if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath))
      {
        return;
      }


      var dsDbTemplate = new DsDbTemplate(templateId, serializationFolderName);

      dataStorage.AddFakeItem(dsDbTemplate);

      // Deserialize base templates
      var baseTemplatesField = dsDbTemplate.Fields.FirstOrDefault(f => f.ID == FieldIDs.BaseTemplate);

      if (baseTemplatesField == null || string.IsNullOrWhiteSpace(baseTemplatesField.Value))
      {
        return;
      }

      foreach (var baseTemplateId in baseTemplatesField.Value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
        .Where(ID.IsID)
        .Select(ID.Parse)
        .Where(baseTemplateId => dataStorage.GetFakeItem(baseTemplateId) == null))
      {
        DeserializeTemplate(dataStorage, baseTemplateId, dsDbTemplate.SerializationFolderName);
      }
    }
 protected virtual void SetDataStorage(object obj, DataStorage dataStorage)
 {
   var rds = obj as IRequireDataStorage;
   if (rds != null)
   {
     rds.SetDataStorage(dataStorage);
   }
 }
    public AddDbItemArgs(DbItem item, DataStorage dataStorage)
    {
      Assert.ArgumentNotNull(item, "item");
      Assert.ArgumentNotNull(dataStorage, "dataStorage");

      this.item = item;
      this.dataStorage = dataStorage;
    }
    public FakeDataProviderTest()
    {
      var database = Database.GetDatabase("master");
      this.dataStorage = Substitute.For<DataStorage>(database);

      this.dataProvider = new FakeDataProvider(this.dataStorage);
      ReflectionUtil.CallMethod(database, "AddDataProvider", new object[] { this.dataProvider });
    }
    public DsItemLoadingArgs(IDsDbItem dsDbItem, DataStorage dataStorage)
    {
      Assert.ArgumentNotNull(dsDbItem, "dsDbItem");
      Assert.ArgumentNotNull(dataStorage, "dataStorage");

      this.dsDbItem = dsDbItem;
      this.dataStorage = dataStorage;
    }
    protected CommandTestBase()
    {
      this.database = Database.GetDatabase("master");
      this.dataStorage = Substitute.For<DataStorage>(this.database);

      this.innerCommand = Substitute.For<DataEngineCommand>(this.dataStorage);
      this.innerCommand.DataStorage.Returns(this.dataStorage);
    }
    public void DoExecuteThrowsNotSupportedException(Type command, DataStorage dataStorage)
    {
      var sut = ReflectionUtil.CreateObject(command, new object[] { dataStorage });

      Action action = () => ReflectionUtil.CallMethod(sut, "CreateInstance");

      action.ShouldThrow<TargetInvocationException>().WithInnerException<NotSupportedException>();
    }
    public DataStorageSwitcher(DataStorage objectToSwitchTo)
    {
      Assert.IsNotNull(objectToSwitchTo, "objectToSwitchTo");

      this.databaseName = objectToSwitchTo.Database.Name;

      Enter(this.databaseName, objectToSwitchTo);
    }
    public FakeDataProviderTest()
    {
      var database = Database.GetDatabase("master");
      this.dataStorage = new DataStorage(database);
      this.dataStorage.FakeItems.Clear();

      this.dataProvider = new FakeDataProvider(this.dataStorage);
      ReflectionUtil.CallMethod(database, "AddDataProvider", new object[] { this.dataProvider });
    }
    public ItemCreatorTest()
    {
      this.database = Database.GetDatabase("master");
      this.dataStorage = Substitute.For<DataStorage>(this.database);

      this.destination = ItemHelper.CreateInstance(this.database);

      this.dataStorage.GetFakeItem(this.destination.ID).Returns(new DbItem("destination"));
      this.dataStorage.GetFieldList(this.templateId, Arg.Any<string>()).Returns(new FieldList());

      this.itemCreator = new ItemCreator(this.dataStorage);
    }
Beispiel #11
0
    /// <summary>
    /// Initializes a new instance of the <see cref="Db"/> class with the specified database.
    /// </summary>
    /// <param name="databaseName">The database name.</param>
    public Db(string databaseName)
    {
      Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName");

      this.database = Database.GetDatabase(databaseName);
      this.dataStorage = new DataStorage(this.database);
      this.dataStorageSwitcher = new DataStorageSwitcher(this.dataStorage);
      this.databaseSwitcher = new DatabaseSwitcher(this.database);

      var args = new InitDbArgs(this.database, this.dataStorage);
      CorePipeline.Run("initFakeDb", args);
    }
Beispiel #12
0
    public Db(string databaseName)
    {
      this.database = Database.GetDatabase(databaseName);
      this.dataStorage = new DataStorage(this.database);

      var config = Factory.GetConfiguration();
      this.configuration = new DbConfiguration(config);
      this.pipelineWatcher = new PipelineWatcher(config);

      var args = new InitDbArgs(this.database, this.dataStorage);
      CorePipeline.Run("initFakeDb", args);
    }
 protected virtual void SetDataStorage(object obj, DataStorage dataStorage)
 {
   var rds = obj as IRequireDataStorage;
   if (rds != null)
   {
     rds.SetDataStorage(dataStorage);
   }
   else
   {
     // we should know if it happens
     throw new System.Exception(obj.GetType().FullName);
   }
 }
Beispiel #14
0
    /// <summary>
    /// Initializes a new instance of the <see cref="Db"/> class with the specified database.
    /// </summary>
    /// <param name="databaseName">The database name.</param>
    public Db(string databaseName)
    {
      Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName");

      this.database = Database.GetDatabase(databaseName);
      this.dataStorage = new DataStorage(this.database);
      this.dataStorageSwitcher = new DataStorageSwitcher(this.dataStorage);
      this.databaseSwitcher = new DatabaseSwitcher(this.database);
      this.databaseLanguages = new Stack<Switcher<DbLanguages>>();
      this.databaseLanguages.Push(
                  new Switcher<DbLanguages>(
                          new DbLanguages(Language.Parse("en"))));

      var args = new InitDbArgs(this.database, this.dataStorage);
      CorePipeline.Run("initFakeDb", args);
    }
    protected virtual bool ResolveTemplate(DbItem item, DataStorage dataStorage)
    {
      if (item.TemplateID == TemplateIDs.Template)
      {
        return true;
      }

      if (item.TemplateID == TemplateIDs.BranchTemplate)
      {
        return true;
      }

      if (this.ResolveBranch(item, dataStorage))
      {
        return true;
      }

      if (dataStorage.GetFakeTemplate(item.TemplateID) != null)
      {
        return true;
      }

      if (!ID.IsNullOrEmpty(item.TemplateID))
      {
        return false;
      }

      var fingerprint = string.Concat(item.Fields.Select(f => f.Name));

      // find an item with a generated template that has a matching fields set
      var sourceItem = dataStorage.GetFakeItems()
        .Where(si => si.TemplateID != TemplateIDs.Template)
        .Where(si => dataStorage.GetFakeTemplate(si.TemplateID) != null)
        .Where(si => dataStorage.GetFakeTemplate(si.TemplateID).Generated)
        .FirstOrDefault(si => string.Concat(si.Fields.Select(f => f.Name)) == fingerprint);

      if (sourceItem == null)
      {
        return false;
      }

      // reuse the template
      item.TemplateID = sourceItem.TemplateID;

      return true;
    }
 public AddDbItemArgs(DbItem item, DataStorage dataStorage) : this(item, dataStorage, Language.Current)
 {
 }
 public DataStorageTest()
 {
   this.dataStorage = new DataStorage(Database.GetDatabase("master"));
 }
Beispiel #18
0
 public ItemCreator(DataStorage dataStorage)
 {
   this.dataStorage = dataStorage;
 }
    public void SetDataStorage(DataStorage dataStorage)
    {
      Assert.ArgumentNotNull(dataStorage, "dataStorage");

      this.DataStorage = dataStorage;
    }
 public InitDataEngineCommandsTest()
 {
   this.database = Database.GetDatabase("master");
   this.dataStorage = Substitute.For<DataStorage>(this.database);
 }
    public void ShouldSetDataStorage()
    {
      // arrange
      var ds = new DataStorage(Database.GetDatabase("master"));

      // act
      this.dataProvider.SetDataStorage(ds);

      // assert
      this.dataProvider.DataStorage.Should().Be(ds);
    }
 internal FakeDataProvider(DataStorage dataStorage)
   : this()
 {
   this.dataStorage.Value = dataStorage;
 }
    void IRequireDataStorage.SetDataStorage(DataStorage dataStorage)
    {
      Assert.ArgumentNotNull(dataStorage, "storage");

      this.storage = dataStorage;
    }
 public CreateTemplateTest()
 {
   this.dataStorage = Substitute.For<DataStorage>(Database.GetDatabase("master"));
   this.processor = new CreateTemplate();
 }
 public virtual void SetDataStorage(DataStorage dataStorage)
 {
   this.dataStorage.Value = dataStorage;
 }
 internal FakeDataProvider(DataStorage dataStorage)
 {
   this.dataStorage = dataStorage;
 }
 public FakeDataProvider(DataStorage dataStorage)
 {
   this.dataStorage = dataStorage;
 }
 public void SetDataStorage(DataStorage dataStorage)
 {
   this.dataStorage = dataStorage;
 }
Beispiel #29
0
 public InitDbArgs(Database database, DataStorage dataStorage)
 {
   this.Database = database;
   this.DataStorage = dataStorage;
 }
    protected virtual bool ResolveBranch(DbItem item, DataStorage dataStorage)
    {
      if (item.ParentID == ItemIDs.BranchesRoot && ID.IsNullOrEmpty(item.TemplateID))
      {
        item.TemplateID = TemplateIDs.BranchTemplate;
        return true;
      }

      if (ID.IsNullOrEmpty(item.TemplateID))
      {
        return false;
      }

      var branchItem = dataStorage.GetFakeItem(item.TemplateID);
      if (branchItem == null)
      {
        return false;
      }

      if (branchItem.TemplateID != TemplateIDs.BranchTemplate)
      {
        return false;
      }

      item.BranchId = branchItem.ID;
      item.TemplateID = ID.NewID;

      return false;
    }