{
  "data": {
    "files": [],
    "chunks": []
  },
  "tests": [
    {
      "description": "Upload when length is 0",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": ""
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 0,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when length is 1",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "11"
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 1,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when length is 3",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "112233"
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 3,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "112233"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when length is 4",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "11223344"
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 4,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11223344"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when length is 5",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "1122334455"
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 5,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11223344"
                }
              },
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 1,
                "data": {
                  "$hex": "55"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when length is 8",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "1122334455667788"
          },
          "options": {
            "chunkSizeBytes": 4
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 8,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11223344"
                }
              },
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 1,
                "data": {
                  "$hex": "55667788"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when contentType is provided",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "11"
          },
          "options": {
            "chunkSizeBytes": 4,
            "contentType": "image/jpeg"
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 1,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename",
                "contentType": "image/jpeg"
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11"
                }
              }
            ]
          }
        ]
      }
    },
    {
      "description": "Upload when metadata is provided",
      "act": {
        "operation": "upload",
        "arguments": {
          "filename": "filename",
          "source": {
            "$hex": "11"
          },
          "options": {
            "chunkSizeBytes": 4,
            "metadata": {
              "x": 1
            }
          }
        }
      },
      "assert": {
        "result": "&result",
        "data": [
          {
            "insert": "expected.files",
            "documents": [
              {
                "_id": "*result",
                "length": 1,
                "chunkSize": 4,
                "uploadDate": "*actual",
                "filename": "filename",
                "metadata": {
                  "x": 1
                }
              }
            ]
          },
          {
            "insert": "expected.chunks",
            "documents": [
              {
                "_id": "*actual",
                "files_id": "*result",
                "n": 0,
                "data": {
                  "$hex": "11"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
