Files
Umbraco-CMS/tests/Umbraco.TestData
Kenn Jacobsen 0096addcb9 Content and media type CRUD controllers and services (#14665)
* Add GetAsync method

* Fix up delete document type controller

* Add scope to delete async

* Add some scaffolding

* Add create model

* Start working on validation

* Move validation to its own service

* Use GetAllAsync instead of GetAsync

* Add initial composition support

Still need to figure out some kinks

* Validate compositions when creating

* Add initial folder support

* Initial handling of generic properties

* Add operation status responses

* Move create operation into service

* Add first test

* Fix issued shown by test

* Ensure a specific key can be specified when creating

* Rename container id to container key

Let's try and be consistent

* Create basic composition test

* Ensure new property groups are created with the correct key

* Add test showing property type issue

* Fix property types not using the expected key.

* Validate against model fetched from content type service

Just to make sure nothing explodes on the round trip

* Make helper for creating create models

* Add helper for creating container

* Make helper methods simpler to use

* Add test for compositions using compositions

* Add more composition tests

* Fix bug allowing element types to be composed by non element types

* Remove validators

This can just be a part of the editing service

* Minor cleanup

* Ensure that multiple levels of inheritance is possible

* Ensure doctype cannot be used as both composition and inheritance on the same doctype

* Ensure no duplicate aliases from composition and that compositions exists

* Minor cleanup

* Address todos

* Add SaveAsync method

* Renamed some models

* Rename from DocumentType to ContentType

* Clarify ParentKey as being container only + untangle things a tiny bit

* Clean out another TODO (less duplicate code) + more tests

* Refactor for reuse across different content types + add media type editing service + unit tests

* Refactor in preparation for update handling

* More tests + fixed bugs found while testing

* Simplify things a bit

* Content type update + a lot of unit tests + some refactor + fix bugs found while testing

* Begin building presentation factories for mapping view models to editing models

* Use async save

* Mapping factories and some clean-up

* Rename Key to Id (ParentKey to ParentId)

* Fix slight typo

* Use editing service in document type controllers and introduce media type controllers

* Validate containers and align container aliases with the current backoffice

* Remove ParentId from response

* Fix scope handling in DeleteAsync

* Refactor ContentTypeSort

* A little renaming for clarity + safeguard against changes to inheritance

* Persist allowed content types

* Fix bad merge + update controller response annotations

* Update OpenAPI JSON

* Update src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentTypeControllerBase.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Fix review comments

* Update usage of MapCreateAsync to ValidateAndMapForCreationAsync

---------

Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-08-17 12:28:16 +02:00
..

Umbraco Test Data

This project is a utility to be able to generate large amounts of content and media in an Umbraco installation for testing.

Usage

You must use SQL Server for this, using SQLCE will die if you try to bulk create huge amounts of data.

It has to be enabled by an appSetting:

{
  "Umbraco": {
    "CMS": {
      "TestData": {
        "Enabled" : true,
      }
    }
  }
}

Once this is enabled this endpoint can be executed:

/umbraco/surface/umbracotestdata/CreateTree?count=100&depth=5

The query string options are:

  • count = the number of content and media nodes to create
  • depth = how deep the trees created will be
  • locale (optional, default = "en") = the language that the data will be generated in

This creates a content and associated media tree (hierarchy). Each content item created is associated to a media item via a media picker and therefore a relation is created between the two. Each content and media tree created have the same root node name so it's easy to know which content branch relates to which media branch.

All values are generated using the very handy Bogus package.

Schema

This will install some schema items:

  • umbTestDataContent Document Type. TIP: If you want to delete all of the content data generated with this tool, just delete this content type
  • UmbracoTestDataContent.RTE Data Type
  • UmbracoTestDataContent.MediaPicker Data Type
  • UmbracoTestDataContent.Text Data Type

For media, the normal folder and image is used

Media

This does not upload physical files, it just uses a randomized online image as the umbracoFile value. This works when viewing the media item in the media section and the image will show up and with recent changes this will also work when editing content to view the thumbnail for the picked media.