Salesforce ContentDocument sObject in Apex Unit Tests

ContentDocument object does not allow insert DML operation in Salesforce, but we can create it through the ContentVersion object, without ContentDocumentId, then a new version of ContentDocument will be created for us in SFDC, just like the sample code below :