0551d28f61
- Introduced new test files for device and media service operations using real camera responses. - Implemented tests for GetDeviceInformation, GetMediaServiceCapabilities, and user management functions. - Enhanced documentation with a detailed testing flow and coverage reports. - Added JSON test reports for tracking operation success and response times. - Updated the README and other documentation to reflect new testing capabilities and structure.
126 lines
4.6 KiB
Markdown
126 lines
4.6 KiB
Markdown
# File Organization
|
|
|
|
This document describes the organization of files in the ONVIF Go library project.
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
onvif-go/
|
|
├── docs/ # Documentation
|
|
│ ├── api/ # API documentation
|
|
│ │ ├── DEVICE_API_STATUS.md
|
|
│ │ ├── DEVICE_API_QUICKREF.md
|
|
│ │ ├── CERTIFICATE_WIFI_SUMMARY.md
|
|
│ │ ├── STORAGE_API_SUMMARY.md
|
|
│ │ └── ADDITIONAL_APIS_SUMMARY.md
|
|
│ ├── implementation/ # Implementation details
|
|
│ │ ├── IMPLEMENTATION_COMPLETE.md
|
|
│ │ ├── IMPLEMENTATION_STATUS.md
|
|
│ │ ├── MEDIA_WSDL_OPERATIONS_ANALYSIS.md
|
|
│ │ └── MEDIA_OPERATIONS_ANALYSIS.md
|
|
│ ├── testing/ # Testing documentation
|
|
│ │ ├── COMPREHENSIVE_TEST_SUMMARY.md
|
|
│ │ ├── CAMERA_TEST_REPORT.md
|
|
│ │ ├── CAMERA_TESTING_FLOW.md
|
|
│ │ ├── DEVICE_API_TEST_COVERAGE.md
|
|
│ │ └── COVERAGE_SETUP.md
|
|
│ ├── README.md # Documentation index
|
|
│ ├── ARCHITECTURE.md
|
|
│ ├── PROJECT_SUMMARY.md
|
|
│ ├── PROJECT_STRUCTURE.md
|
|
│ └── ... (other docs)
|
|
│
|
|
├── test-reports/ # Test reports (JSON)
|
|
│ ├── README.md
|
|
│ └── camera_test_report_*.json
|
|
│
|
|
├── examples/ # Example programs
|
|
│ ├── test-real-camera-all/ # Comprehensive camera testing
|
|
│ ├── device-info/
|
|
│ ├── discovery/
|
|
│ └── ... (other examples)
|
|
│
|
|
├── testdata/ # Test data
|
|
│ └── captures/ # Captured SOAP responses
|
|
│
|
|
├── cmd/ # Command-line tools
|
|
│ ├── onvif-cli/
|
|
│ ├── onvif-diagnostics/
|
|
│ └── ...
|
|
│
|
|
├── server/ # ONVIF server implementation
|
|
│
|
|
├── discovery/ # Discovery functionality
|
|
│
|
|
├── internal/ # Internal packages
|
|
│ └── soap/ # SOAP client
|
|
│
|
|
├── testing/ # Testing utilities
|
|
│
|
|
├── *.go # Core library files
|
|
├── *_test.go # Test files
|
|
├── README.md # Main README
|
|
├── CHANGELOG.md # Version history
|
|
├── CONTRIBUTING.md # Contribution guidelines
|
|
├── BUILDING.md # Build instructions
|
|
└── LICENSE # License file
|
|
```
|
|
|
|
## File Categories
|
|
|
|
### Root Directory
|
|
- **Core library files** (`*.go`) - Main implementation files
|
|
- **Test files** (`*_test.go`) - Unit and integration tests
|
|
- **Essential documentation** - README.md, CHANGELOG.md, CONTRIBUTING.md, BUILDING.md, LICENSE
|
|
|
|
### Documentation (`docs/`)
|
|
- **API Documentation** (`docs/api/`) - API reference and status documents
|
|
- **Implementation Details** (`docs/implementation/`) - Implementation analysis and status
|
|
- **Testing Documentation** (`docs/testing/`) - Test reports and coverage information
|
|
- **General Documentation** (`docs/`) - Architecture, guides, and other documentation
|
|
|
|
### Test Reports (`test-reports/`)
|
|
- JSON files containing test results from real camera testing
|
|
- Automatically generated by `examples/test-real-camera-all/main.go`
|
|
- Named with pattern: `camera_test_report_{Manufacturer}_{Model}_{Timestamp}.json`
|
|
|
|
### Examples (`examples/`)
|
|
- Example programs demonstrating library usage
|
|
- Organized by functionality (discovery, device-info, PTZ, etc.)
|
|
|
|
### Test Data (`testdata/`)
|
|
- Captured SOAP responses from real cameras
|
|
- Used for unit testing without camera connectivity
|
|
|
|
## File Naming Conventions
|
|
|
|
### Documentation Files
|
|
- **UPPERCASE_WITH_UNDERSCORES.md** - Main documentation files
|
|
- **README.md** - Directory indexes
|
|
|
|
### Test Files
|
|
- **{module}_test.go** - Standard Go test files
|
|
- **{module}_real_camera_test.go** - Tests using real camera data
|
|
|
|
### Report Files
|
|
- **camera_test_report_{manufacturer}_{model}_{timestamp}.json** - Test reports
|
|
|
|
## Maintenance
|
|
|
|
### Adding New Documentation
|
|
1. **API Documentation** → `docs/api/`
|
|
2. **Implementation Details** → `docs/implementation/`
|
|
3. **Testing Documentation** → `docs/testing/`
|
|
4. **General Documentation** → `docs/`
|
|
|
|
### Generating Test Reports
|
|
Run `examples/test-real-camera-all/main.go` - reports are automatically saved to `test-reports/`
|
|
|
|
### Updating Documentation Index
|
|
Update `docs/README.md` when adding new documentation files.
|
|
|
|
---
|
|
|
|
*Last Updated: December 2, 2025*
|
|
|